Mybatis Plus not in 用法(超详细)
前言
大家好,我是小哈。
本小节中给大家讲解如何通过 Mybatis Plus 中的 Wrapper 组装 SQL 实现 not in
语句。
方法
Wrapper 条件构造器中 not in
相关的方法如下:
notIn(R column, Collection<?> value)
notIn(boolean condition, R column, Collection<?> value)
代码示例
notIn
方法是父类 AbstractWrapper
(抽象类)中定义的方法,子类 QueryWrapper
、LambdaQueryWrapper
、UpdateWrapper
、LambdaUpdateWrapper
均可调用,以下用 QueryWrapper
来演示:
// 组装查询条件
QueryWrapper<User> wrapper = new QueryWrapper<>();
// 查询 id 不为 1, 2, 3 的数据
wrapper.notIn("id", Arrays.asList(1, 2, 3));
// 实际执行 SQL : SELECT id,name,age,gender FROM user WHERE (id NOT IN (1,2,3))
List<User> users = userMapper.selectList(wrapper);
Lambda 形式:
// 实际执行 SQL : SELECT id,name,age,gender FROM user WHERE (id NOT IN (1,2,3))
List<User> users = userMapper.selectList(new QueryWrapper<User>()
.lambda().notIn(User::getId, Arrays.asList(1, 2, 3)));