批量处理即对多条数据进行sql操作,如批量更新,插入,新增。
之前采取过很low的方式,就是在dao层进行循环,对每条数据进行操作。这样效果可以实现,但是频繁连接数据库,性能,效率上非常不好。mybatis支持参数为list的操作,这样连接数据库就一次,把循环的语句写入到sql语句中,这样效率会高很多。
如何引入mybatis这里不做描述。
先看service层方法如何写
service 接口层定义方法,如:Integer batchUpdate(List<OrderEntity> list);注:对订单进行批量更新
dao 层也同样顶一个接口,一般我都用同样的名字,拷贝起来比较方便,Integer batchUpdate(List<OrderEntity> list);
千万注意dao层接口是通过mabatis的xml找到真正的实现方式的。
service 实现层 ,public Integer batchUpdate (List<OrderEntity> list){
return dao.batchUpdate (list);//调用dao层的接口,dao层的接口又会找到对应的mybatis的xml的sql语句
}
下面开始说重点,就是mybatis的xml里怎么写的
<update id="batchUpdate " parameterType="java.util.List">
<foreach collection="list" i