Mybatis批量操作

方式一: foreach

作用: 对集合、数组及Map进行遍历;
属性:
Mybatis批量操作_第1张图片

使用示例:

List selectScheduleUuidByTaskCodes(@Param("taskCodes")Set taskCodes);

批量操作

  批量操作可以基于foreach实现,如下:

批量插入


        INSERT INTO tb1_emplyee(last_name,email,gender,d_id)
        VALUES 
        
            (#{emp.lastName},#{emp.email},#{emp.gender},#{emp.dept.id})
        

批量删除


    delete from user
    where id in
    
    #{id}
    

方式二: BATCH模式

  优点:可以不用 去实现特别复杂的批量操作,能够直接使用mybatis generator生成的代码;

@Autowired
private SqlSessionFactory sqlSessionFactory;

@Transactional(rollbackFor = Exception.class)
@Override
public void batchTest() {
    SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
    TestMapper mapper = sqlSession.getMapper(TestMapper.class);
    List<Country> countries = mapper.selectAll();
    for (int i = 0; i < n; i++) {
        mapper.updateByPrimaryKey(country);
    }
    sqlSession.flushStatements();
}

参考:

  1. https://blog.csdn.net/isea533/article/details/21237175;
  2. 官网:http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html;
  3. MyBatis 批量提交 - BATCH

你可能感兴趣的:(Mybatis)