1. 程式人生 > 實用技巧 >mybatis插入批量資料

mybatis插入批量資料

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 (int
i = 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) + "---------------"); }

4mybatis的dao的xml對映檔案使用foreach
<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>