MyBatis 批量操作

       使用MyBatis做数据处理框架时,操作大量数据的插入、更新等耗时的工作时,可以使用批量处理来提高效率,MyBatis的批量处理主要使用foreach标签来实现。
 

        foreach 元素的功能是非常强大的,它允许你指定一个集合,声明可以用在元素体内的集合项和索引变量。它也允许你指定开闭匹配的字符串以及在迭代中间放置分隔符。这个元素是很智能的,因此它不会偶然地附加多余的分隔符。

 

        注意: 你可以将任何可迭代对象(如列表、集合等)和任何的字典或者数组对象传递给foreach作为集合参数。当使用可迭代对象或者数组时,index是当前迭代的次数,item的值是本次迭代获取的元素。当使用字典(或者Map.Entry对象的集合)时,index是键,item是值。
 
foreach入参介绍:
1.如果传入的是单参数且参数类型是一个List的时候,collection属性值为list。
2.如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array。
3.如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map。
 
下面以博客的Post类为例,Post有3个属性:id、msg、type。
1.批量查询
 
2.批量插入

  insert into POST 
  (msg,type)
  values
    
        #{item.msg},#{item.type}
  

 
3.批量更新

       
        update post
        
            
                msg=#{item.msg},
            
            
                type=#{item.type},
            
        
        where id=#{item.id}
        

 
参考资料:  http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html

你可能感兴趣的:(架构和设计,java)