mybatis-plus 多字段in
时间: 2023-07-11 11:37:21 浏览: 1079
Mybatis-Plus 提供了一个方便的方法 `in`,可以用于多字段的 `in` 查询。例如,假设有一个实体类 `User`,其中包含 `name` 和 `age` 两个字段,我们想要查询姓名为 "张三" 或 "李四",年龄为 18 或 20 的用户,可以使用如下代码:
```java
List<User> userList = userMapper.selectList(new QueryWrapper<User>()
.in("name", "张三", "李四")
.in("age", 18, 20)
);
```
其中,`in` 方法的第一个参数为字段名,后面跟上需要查询的多个值。如果需要查询多个字段,可以多次调用 `in` 方法即可。需要注意的是,`in` 方法中的参数值不能为 null,否则会抛出空指针异常。
相关问题
mybatis-plus 多字段inlist
如果需要使用 Mybatis-Plus 进行多字段的 `IN` 查询,可以使用 `QueryWrapper` 的 `inSql` 方法。例如,假设有一个实体类 `User`,其中包含 `name` 和 `age` 两个字段,我们想要查询姓名为 "张三" 或 "李四",年龄为 18 或 20 的用户,可以使用如下代码:
```java
List<User> userList = userMapper.selectList(new QueryWrapper<User>()
.inSql("name", "select name from user where name in ('张三', '李四')")
.inSql("age", "select age from user where age in (18, 20)")
);
```
其中,`inSql` 方法的第一个参数为字段名,第二个参数为 SQL 子查询语句,子查询语句中可以使用 `IN` 来查询多个值。需要注意的是,`inSql` 方法中的 SQL 语句必须使用括号将多个值括起来,并且括号内的值必须使用单引号括起来。另外,子查询语句中的表名必须与实体类对应的表名一致。
mybatis-plus更新字段
MyBatis-Plus 提供了多种方式更新字段,以下是其中几种常用的方式:
1. 使用 updateById 方法更新指定 id 的记录:
```java
User user = new User();
user.setId(1L);
user.setName("张三");
user.setAge(20);
userMapper.updateById(user);
```
2. 使用 update 方法更新符合条件的记录:
```java
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name", "张三");
User user = new User();
user.setAge(22);
userMapper.update(user, updateWrapper);
```
3. 使用 LambdaUpdateWrapper 更新符合条件的记录:
```java
LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(User::getName, "张三");
User user = new User();
user.setAge(22);
userMapper.update(user, lambdaUpdateWrapper);
```
4. 使用 UpdateChainWrapper 更新符合条件的记录:
```java
UpdateChainWrapper<User> updateChainWrapper = new UpdateChainWrapper<>(userMapper);
updateChainWrapper.eq("name", "张三").set("age", 22).update();
```
以上是 MyBatis-Plus 更新字段的几种常用方式,你可以根据具体的业务需求选择合适的方式。
阅读全文