mybatis foreach插入List<Stirng>
时间: 2023-07-19 11:15:09 浏览: 166
mybatis动态插入list传入List参数的实例代码
假设你有如下的数据模型:
```java
public class User {
private List<String> names;
// getter and setter methods
}
```
你想使用 MyBatis 的 foreach 标签来插入多个 User 对象,其中每个 User 对象包含一个 names 字段(List<String> 类型)。你可以使用如下的 SQL 语句和 MyBatis 的 Mapper 映射文件来实现:
```sql
INSERT INTO user (name) VALUES
<foreach collection="users" item="names" separator=",">
<foreach collection="names" item="name" separator=",">
#{name}
</foreach>
</foreach>
```
```xml
<!-- UserMapper.xml -->
<mapper namespace="com.example.UserMapper">
<insert id="insertUsers" parameterType="java.util.List">
INSERT INTO user (name) VALUES
<foreach collection="list" item="user" separator=",">
<foreach collection="user.names" item="name" separator=",">
#{name}
</foreach>
</foreach>
</insert>
</mapper>
```
其中,collection 属性表示要遍历的集合(List 类型),item 属性表示集合中的元素,separator 属性表示分隔符。在 SQL 语句中,使用了两个嵌套的 foreach 标签,第一个用来遍历多个 User 对象,第二个用来遍历每个 User 对象的 names 字段。在 Mapper 映射文件中,insert 标签的 parameterType 属性设置为 java.util.List,表示传入的参数是一个 List 类型的集合,insert 标签的 id 属性设置为 insertUsers,表示这个 SQL 语句的 ID 是 insertUsers。
阅读全文