最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

Mybatis批量插入3种方法

来源:博客园


(资料图)

原文链接:https://blog.csdn.net/qq_43486404/article/details/126637141

使用Mybatis框架批量插入的3种方法:多次调用insert方法、foreach标签、batch模式

一、 多次调用insert方法每插入一条数据都调用一次insert方法,这种方法适用于数据量小时使用,频繁使用会浪费数据库资源。1二、 foreach标签一次存入多条数据,使用方法如下:1 insert into test (shop_id, test_type_id,) values (#{item.shopId,jdbcType=BIGINT}, #{item.goodsTypeId,jdbcType=BIGINT}) `12345678三、 batch模式一次存入多条数据,使用方法如下:xml代码:12 insert into test (shop_id, test_type_id) values (#{shopId,jdbcType=BIGINT}, #{goodsTypeId,jdbcType=BIGINT}) 123456后端java代码:

//先引入 @Resource private SqlSessionFactory sqlSessionFactory; //具体实现SqlSession sqlSession=sqlSessionFactory.openSession(ExecutorType.BATCH); List insertlist=new ArrayList<>(); test test1=new test((long)1,(long)12); for(int i=0;i<100000;i++){ insertlist.add(test1); } try{ Long mm=System.currentTimeMillis(); TestDao mapper=sqlSession.getMapper(TestDao.class); insertlist.stream().forEach(e->{ mapper.insert(e); }); sqlSession.clearCache(); sqlSession.commit(); }catch(Exception e){ System.out.println(e); }finally{ sqlSession.close(); }1234567891011121314151617181920212223四、三种方法比较1)insert适用于少量数据插入,每次使用都要调用数据库连接,频繁使用会浪费资源,效率低2)foreach标签使用foreach可以减少数据库连接的调用,效率比inser高3)batch模式当数据特别多时效率比foreach标签高

关键词: 使用方法 数据库连接