mysql list集合查询_MyBatis 传入List集合作为条件查询数据
时间: 2024-04-30 11:19:37 浏览: 12
在 MyBatis 中,可以使用 `<foreach>` 标签来循环遍历集合,将集合中的元素作为 SQL 语句的参数,从而实现传入 List 集合作为条件查询数据的功能。
例如,假设有如下的表结构:
```
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50),
age INT,
email VARCHAR(50)
);
```
我们可以通过以下的 XML 配置文件来实现传入 List 集合作为条件查询数据:
```
<select id="getUserListByAgeList" resultType="User">
SELECT * FROM user WHERE age IN
<foreach collection="ageList" item="age" open="(" separator="," close=")">
#{age}
</foreach>
</select>
```
在上述的 SQL 语句中,我们使用了 `<foreach>` 标签来循环遍历名为 `ageList` 的 List 集合,将集合中的每个元素作为 `#{age}` 的值,从而实现根据年龄条件查询用户数据的功能。
在调用该 SQL 语句时,需要传入一个 Map 参数,其中 `ageList` 对应的值为一个 List 集合,例如:
```
List<Integer> ageList = new ArrayList<>();
ageList.add(18);
ageList.add(20);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("ageList", ageList);
List<User> userList = sqlSession.selectList("getUserListByAgeList", paramMap);
```
在上述代码中,我们将要查询的年龄值列表存放在 `ageList` 中,并将该列表作为参数传入 SQL 语句中,最终得到符合条件的用户列表 `userList`。