如何用mapper中插入list,在mapper.xml中写
时间: 2024-02-22 09:58:09 浏览: 27
可以使用MyBatis的foreach标签来实现在mapper中插入list。
例如,假设我们有一个User实体类,其中包含id和name属性。我们想要插入多个User对象到数据库中,可以按照以下方式在mapper.xml中编写SQL:
```
<insert id="insertUsers" parameterType="java.util.List">
insert into user (id, name)
values
<foreach collection="list" item="user" separator=",">
(#{user.id}, #{user.name})
</foreach>
</insert>
```
在上面的SQL中,我们使用了foreach标签,它会遍历传递进来的List集合,并将每个User对象的id和name属性插入到数据库中。
注意,parameterType应该指定为java.util.List,而不是User类。这是因为我们希望传递一个包含多个User对象的List集合,而不是单个User对象。同时,当我们使用foreach标签时,要设置collection属性为list,item属性为我们在foreach标签中使用的变量名(这里是user),separator属性用于指定每个User对象之间的分隔符(这里使用逗号)。
在Java代码中,我们可以将多个User对象添加到List集合中,然后将List集合传递给insertUsers方法,这样就可以一次性将多个User对象插入到数据库中。
```
List<User> userList = new ArrayList<>();
User user1 = new User(1, "Tom");
User user2 = new User(2, "Jerry");
userList.add(user1);
userList.add(user2);
userMapper.insertUsers(userList);
```