mybatis的foreach标签

    JDBC有批处理,mybatis中的foreach标签也支持批处理,功能非常强大,在动态sql中是很重要的一员,今天就给大家来讲一下foreach标签。

    <foreach collection="***" item="***" index="***" separator="***" open="***" close="***">

     collection:要遍历的集合或者数组名

      item:代表着集合遍历中的每一项

      index:表示当前项在list或者array中的索引

      separator:表示两项之间的分隔符

      open:以什么statement开头

      close:以什么statement结尾

     这里谈一下mybatis中多种情况下collection中写什么的问题

     1.单参数的数组写array

     2.单参数的集合写list

     3.如果封装到map或者集合位于对象中,则填写map的key或者对象的属性名

    另外呢,今天还碰到了一个问题,就是用foreach进行批量插入,同时要求将自增主键自动注入到入参里面去,记录一下需要注意的几个问题:

     1.mybatis的版本不能太低

     2.参数必须是单list,不能是map或者对象

     3.不能在dao(mapper)中使用@Param注解

     另外呢,在批量插入时,并不会因为其中的某一条失败,事务就会回滚,同时返回影响的行数呢,只会返回最后一条记录插入影响的行数,也就是0或者1,从而我们在对批处理插入时,判断是否插入成功时,需要注意,要做一些额外的处理。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值