先贴出执行效果(数字代表执行的时间,单位毫秒):
测试代码:
//测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes = DemoApplication.class)
public class Test1 {
@Autowired
UsersMapper usersMapper;
@Autowired
SqlSessionFactory sqlSessionFactory;
public List list = new ArrayList<>();
@Before
public void getList() {
long start = System.currentTimeMillis();
Users user;
for (int i = 1; i <=50000 ; i++) {
user = new Users();
user.setId(i);
user.setName(“java”);
user.setAge(200);
user.setManagerId(222);
list.add(user);
}
System.out.println(“拼装数据 耗时:”+(System.currentTimeMillis()-start));
System.out.println(list.size());
}
@Test
public void batchInsert() {
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false);
UsersMapper mapper = sqlSession.getMapper(UsersMapper.class);
System.out.println(“batchInsert 插入开始========”);
long start = System.currentTimeMillis();
for (int i = 0; i < list.size(); i++) {
mapper.insert(list.get(i));
if (i%5000==4999) {
sqlSession.flushStatements();
// sqlSession.commit();
// sqlSession.clearCache();
}
}
// sqlSession.commit();
// sqlSession.clearCache();
sqlSession.flushStatements();
System.out.println(“SqlSession 批量插入耗时:”+(System.currentTimeMillis()-start));
}
@Test
public void forEachInsert() {
System.out.println(“forEachInsert 插入开始========”);
long start = System.currentTimeMillis();
for (int i = 0; i < list.size(); i++) {
usersMapper.insert(list.get(i));
}
System.out.println(“foreach 插入耗时:”+(System.currentTimeMillis()-start));
}
@Test
public void sqlInsert() {
System.out.println(“sql 插入开始========”);
long start = System.currentTimeMillis();
usersMapper.sqlInsert(list);
System.out.println(“sql 插入耗时:”+(System.currentTimeMillis()-start));
}
//xml批量插入
@Test
public void xmlInsert() {
System.out.println(“xmlInsert 批量插入开始========”);
long start = System.currentTimeMillis();
usersMapper.xmlBatchInsert(list);
System.out.println(“xmlInsert 批量插入耗时:”+(System.currentTimeMillis()-start));
}
}
//sql插入相关类
@Repository
public interface UsersMapper extends BaseMapper {
@InsertProvider(type = UsersProvider.class, method = “insertListSql”)
public void sqlInsert(List list);
public void xmlBatchInsert(@Param(“list”) List list);
}
public class UsersProvider {
public String insertListSql(List list) {
StringBuffer sqlList = new StringBuffer();
sqlList.append(" INSERT INTO users(id,name,age,manager_id) VALUES ");
for (int i = 0; i < list.size() ; i++) {
Users user = list.get(i);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
[外链图片转存中…(img-81Xl8HCK-1712853179360)]