MyBatis Plus条件构造器之Wrapper使用.png
1Wrapper
: 条件构造抽象类,最顶端父类
1.1 AbstractWrapper
: 用于查询条件封装,生成 sql 的 where 条件
1.2 QueryWrapper
: Entity 对象封装操作类,不是用lambda语法
1.3 UpdateWrapper
: Update 条件封装,用于Entity对象更新操作
1.4 AbstractLambdaWrapper
: Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
1.5 LambdaQueryWrapper
:看名称也能明白就是用于Lambda语法使用的查询Wrapper
1.6 LambdaUpdateWrapper
: Lambda 更新封装Wrapper
使用Wrapper
构建条件
常见查询
ge
、gt
、le
、lt
、isNull
、isNotNull
@RequestMapping("SelectMapComplex")
@ResponseBody
public List<User> SelectMapComplex(){
//创建QueryWrapper对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//通过QueryWrappershe设置条件
//如果name不等于空,并且age大于22,并且email不等于空,执行删除
queryWrapper.isNotNull("name")
//ge:>= gt:> le:<= lt:< idea控制台 <> 相当于 !=
.gt("age",22)
.isNotNull("email");
//查询
List<User> users = userMapper.selectList(queryWrapper);
return users;
}
访问:http://localhost:8888/SelectMapComplex
控制台打印的sql
SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE deleted=0 AND (name IS NOT NULL AND age > 22 AND email IS NOT NULL)
范围查询
@RequestMapping("SelectMapComplex")
@ResponseBody
public List<User> SelectMapComplex(){
//创建QueryWrapper对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//通过QueryWrappershe设置条件
//如果name不等于空,并且age大于22,并且email不等于空,执行删除
//between 范围查询
//查询 年龄 20-30 之间的数据
queryWrapper.between("age",18,30);
List<User> users = userMapper.selectList(queryWrapper);
return users;
}
模糊查询
/**
* 模糊查询
* @return
*/
@RequestMapping("SelectMapComplex")
@ResponseBody
public List<User> SelectMapComplex(){
//创建QueryWrapper对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//模糊查询
queryWrapper.like("name", "宋子宪");
List<User> users = userMapper.selectList(queryWrapper);
return users;
}
查询方法大全
/**
* 查询方法大全
* @return
*/
@RequestMapping("SelectMapComplex")
@ResponseBody
public void SelectMapComplex(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
//通过QueryWrapper设置条件
//ge、gt、le、lt
//查询age>=30记录
//第一个参数字段名称,第二个参数设置值
// wrapper.ge("age",30);
//eq、ne
//wrapper.eq("name","lilei");
//wrapper.ne("name","lilei");
//between
//查询年龄 20-30
// wrapper.between("age",20,30);
//like
//wrapper.like("name","岳");
//orderByDesc
// wrapper.orderByDesc("id");
//last
//wrapper.last("limit 1");
//指定要查询的列
wrapper.select("id","name");
List<User> users = userMapper.selectList(wrapper);
System.out.println(users);
}