mysql list集合查询_MyBatis 传入List集合作为条件查询数据
时间: 2023-12-03 17:43:24 浏览: 80
在 MyBatis 中,可以使用 `<foreach>` 标签来动态生成 SQL 语句,从而实现传入 List 集合作为条件查询数据的功能。
假设我们有一个 User 表,其中有 id、name 和 age 字段。现在我们要查询所有 id 在 List<Integer> ids 中且 age 大于等于 int minAge 的用户信息。可以按照以下步骤进行操作:
1. 在 mapper.xml 文件中编写 SQL 语句:
```xml
<select id="selectUsersByIdsAndAge" resultMap="userMap">
SELECT id, name, age FROM user
WHERE id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
AND age >= #{minAge}
</select>
```
2. 在 mapper 接口中定义方法:
```java
List<User> selectUsersByIdsAndAge(@Param("ids") List<Integer> ids, @Param("minAge") int minAge);
```
3. 在调用方法时传入 List 集合和 int 参数:
```java
List<Integer> ids = Arrays.asList(1, 2, 3);
int minAge = 18;
List<User> userList = userMapper.selectUsersByIdsAndAge(ids, minAge);
```
这样就可以根据传入的 List<Integer> ids 和 int minAge 参数查询出所有符合条件的用户信息了。
阅读全文