mybatis-plus中in的用法
时间: 2024-05-06 08:16:27 浏览: 9
在 MyBatis-Plus 中使用 `in` 关键字的方法与原生 MyBatis 一样,只需要在 SQL 语句中使用 `in` ,并且将需要匹配的值以数组或者集合的形式传递给 MyBatis-Plus 的查询条件即可。
例如,假设有一个用户表 `user` ,需要查询其中 `age` 在 20、21、22 之间的用户,可以使用以下代码:
```java
List<Integer> ages = Arrays.asList(20, 21, 22);
List<User> userList = userMapper.selectList(
new QueryWrapper<User>()
.in("age", ages)
);
```
上述代码中,我们使用 `in` 关键字,将需要匹配的年龄值以集合的形式传递给了查询条件。MyBatis-Plus 会自动将集合转换为 `age in (20, 21, 22)` 的 SQL 语句,从而达到查询结果的目的。
另外,MyBatis-Plus 还提供了 `inSql` 方法,可以使用子查询作为 `in` 关键字的查询条件。例如:
```java
String subQuerySql = "select id from dept where dept_name like 'IT%'";
List<User> userList = userMapper.selectList(
new QueryWrapper<User>()
.inSql("dept_id", subQuerySql)
);
```
上述代码中,我们使用 `inSql` 方法,将子查询语句作为 `dept_id in (select id from dept where dept_name like 'IT%')` 的查询条件。MyBatis-Plus 会自动将子查询语句转换为 SQL 语句,从而达到查询结果的目的。