mybatis插入批量資料
阿新 • • 發佈:2020-12-24
1for迴圈重複呼叫dao,消耗大
2sql語句編寫插入多條,只用於少數
3mybatis的batch插入
@Test public void testInsertBatch2() throws Exception { long start = System.currentTimeMillis(); User user; SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH, false);//跟上述sql區別 UserDao mapper = sqlSession.getMapper(UserDao.class); for (int4mybatis的dao的xml對映檔案使用foreachi = 0; i < 500; i++) { user = new User(); user.setId("test" + i); user.setName("name" + i); user.setDelFlag("0"); mapper.insert(user); } sqlSession.commit(); long end = System.currentTimeMillis(); System.out.println("---------------" + (start - end) + "---------------"); }
<insert id="insertBatch"> INSERT INTO t_user (id, name, del_flag) VALUES <foreach collection ="list" item="user" separator =","> (#{user.id}, #{user.name}, #{user.delFlag}) </foreach > </insert>