遍历 对象数组 的方式
描述:
想要通过 Mybatis 动态 sql 实现,批量添加 数据进入数据库时,Dao接口参数设置为实体类型数组,Mapper 的对应方法使用 forEach 标签遍历此数组。
代码:
dao 接口的方法:
/**
* 批量插入
* @param goods 货物数组
* @return 影响行数
*/
int bulkInsert(Good[] goods);
接口中接受的参数是 对象类型的数组
mapper 文件对应的 SQL :
<insert id="bulkInsert">
insert into good(goodname, size, number, userid, department, writingdate, orderid)
VALUES
<foreach collection="array" open="(" separator="),(" close=")" item="good">
#{good.goodname},#{good.size},#{good.number},#{good.userid},#{good.department},#{good.writingdate},#{good.orderid}
</foreach>
</insert>
forEach 的参数设置:
collection = 正在遍历的参数类型 array 是数组类型
open = 循环以什么开始
separator = 间隔符 ,每次循环结果通过此间隔符间隔开
close = 循环结束时以什么结束
item = 每次遍历从 array 中获得的的临时参数 相当于 “ 变量[0],变量[1],变量[2],变量[3] ”
index = 遍历的索引 , 类似 for 循环中自定义的自增变量 i,这个变量会随着循环自增
这里用到 临时变量 . 属性名 的方式获取参数值。
返回 int 影响行数