mybatis中foreach多条插入
时间: 2023-10-17 13:26:59 浏览: 208
MyBatis 批量插入几千条数据,请慎用foreach.zip
在MyBatis中,可以使用foreach标签来实现批量插入多条记录。首先需要在SQL语句中使用foreach标签,指定要循环的集合以及循环体中的对象。例如,使用foreach标签插入多条记录的SQL语句如下所示:
```xml
<insert id="insertCustomersBatch" parameterType="java.util.List">
insert into STOREROOM_REPERTORY(UUID, CUSTOMERSNAME, CUSTOMERSNO, COMMUNITY, REPERTORY_CODE, REPERTORY_AREA, COLOUR, CREATE_DATE, LOT, STATUS, OPERATOR_DATE)
<foreach collection="list" item="item" index="index" separator="union all">
( SELECT #{item.uuid}, #{item.customersname}, #{item.customersno}, #{item.community}, #{item.repertoryCode}, #{item.repertoryArea}, #{item.colour}, #{item.createDate}, #{item.lot}, #{item.status}, #{item.operatorDate} FROM DUAL )
</foreach>
</insert>
```
在这个例子中,我们通过foreach标签循环遍历了传入的list集合,并将循环体中的item对象的属性值插入到数据库中。在循环体中,可以通过#{item.property}的方式引用item对象的属性值。
需要注意的是,foreach标签有一些属性需要注意:
- collection属性指定了要循环遍历的集合,这里是list。
- item属性指定了循环体中的对象,这里是item。
- index属性指定了在循环过程中的索引,这里是index。
- separator属性指定了在每次迭代之间的分隔符,这里是"union all"。
通过以上配置,就可以在MyBatis中实现批量插入多条记录的功能了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [Mybatis中的foreach循环——循环插入多条数据](https://blog.csdn.net/a498936289/article/details/127994634)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [Mybatis的foreach实现批量插入sql写法](https://blog.csdn.net/weixin_50002038/article/details/128605511)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文