学习:Mybatis中<forEach>标签的使用

it2024-06-21  41

遍历 对象数组 的方式


描述:

想要通过 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 影响行数

最新回复(0)