【为什么for的双循环插入数据会更快呢 _数据库 】 | IT修真院·坑乎
咨询电话 : 010-59478634
切换导航
首页
我的提问
我的回答
我的点赞
消息通知
个人主页
×
提示
尚未登陆,前往官网登陆?
×
提示
尚未登陆,前往官网登陆?
为什么for的双循环插入数据会更快呢
我也踩过这个坑(
1
)
已统计您的踩坑,无需重复点击
回答(1)
数据库
详细描述
任务一使用mybatis向数据库插入大量数据的时候,我使用双for循环会比一个for循环执行的速度提快不少,但是从代码上理解最外层的for循序有些没意义,那为什么这样会更快的插入数据呢,没找到资料解释这个原因
错误截图
双for循环的例子
源码
public void insertUserTest() throws IOException { //mybatis配置文件 String resource = "SqlMapConfig.xml"; //得到配置文件流 InputStream inputStream = Resources.getResourceAsStream(resource); //创建会话工厂,传入mybatis的配置文件信息 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //通过工厂得到SqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); long start = System.currentTimeMillis(); List<User> userList = new ArrayList<User>(); try{ for (int l = 0; l <1; l++) { for (int i =0; i < 100001; i++) { User user = new User(); user.setId(i); user.setUsername("庄" + i); userList.add(user); System.out.println(user.getId()); if (i % 100000 == 0) { sqlSession.selectList("test.insertUser", userList); userList.clear();//清空list } } } //提交事务 sqlSession.commit(); // sqlSession.close(); long end = System.currentTimeMillis(); System.out.println("插入1000000数据所需时间" + (end - start) + "ms" + "=" + ((end - start) / 1000) + "s"); } catch (Exception e) { e.printStackTrace(); } finally { sqlSession.close(); } }
编辑于2025-05-17
时间排序
热门排序
[深圳|结业弟子]JAVA-陈哲明
0
查看全部>
编辑于2018-09-21
首页
1
末页
去第
页
确定
Copyright ©2015 北京葡萄藤信息技术有限公司 All Rights Reserved | 京ICP备15035574号-1
复制链接
新浪微博
微信扫一扫