mybatis 中mapper文件传入list集合作为参数,xml文件如何使用,给出代码实例
时间: 2024-09-10 12:19:54 浏览: 79
MyBatis支持将集合作为参数传递给mapper文件中的SQL语句。在mapper XML文件中,可以使用集合类型参数,如`#{}`占位符结合`collection`属性来引用传递的集合参数。以下是一个简单的例子,演示了如何在mapper XML文件中使用list集合参数:
假设有一个`User`实体类和一个`selectUsersByList`方法,该方法接收一个`List<Integer>`类型的参数,用于查询数据库中ID在该列表中的所有用户。
1. 在mapper接口中定义方法:
```java
public interface UserMapper {
List<User> selectUsersByList(List<Integer> userIds);
}
```
2. 在mapper XML文件中定义SQL语句,使用`collection`属性指定参数类型为集合:
```xml
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectUsersByList" resultType="com.example.entity.User">
SELECT * FROM users WHERE id IN
<foreach item="userId" collection="list" open="(" separator="," close=")">
#{userId}
</foreach>
</select>
</mapper>
```
在这个例子中,`<foreach>`标签用于迭代集合参数,`item`属性定义了集合中每个元素的别名,`collection`属性指定了传入的集合参数。`open`属性定义了循环开始的字符串,`separator`属性定义了元素之间的分隔符,`close`属性定义了循环结束的字符串。
使用时,MyBatis会自动处理集合参数,将每个元素作为占位符参数传递给SQL语句。
阅读全文