1.项目准备
参考地址
这里我们主要介绍一下运用mybatis-plus为我们封装好的方法进行复杂的条件查询。
2.wapper介绍
Wrapper : 条件构造抽象类,最顶端父类
AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
QueryWrapper : 查询条件封装
UpdateWrapper : Update 条件封装
AbstractLambdaWrapper : 使用Lambda 语法
LambdaQueryWrapper :用于Lambda语法使用的查询Wrapper
LambdaUpdateWrapper : Lambda 更新封装Wrapper
3.QueryWrapper : 查询条件封装
@Test
public void selectWraooer(){
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
//ge,gt,le,lt(大于、大于等于、小于、小于等于) eq/ne(等于、不等于)
queryWrapper.ge("age",28);
List<User> users=userMapper.selectList(queryWrapper);
for (User u:users) {
System.out.println("查询大于28年龄的(没有给逻辑删除的数据)"+u);
}
}
结果,我们就查出了数据库中年龄大于28的数据
因为我做了逻辑删除的操作所以这里只有三条数据想要了解逻辑删除的 可以看看另一篇springboot之mybatis-plus——介绍2
对于QueryWrapper常用的几个方法我只测试一个某个字段大于xx的方法其他方法传参是一样的只是效果不同
ge,gt,le,lt(大于、大于等于、小于、小于等于) eq/ne(等于、不等于)
between、notBetween
包含大小边界
@Test
public void selectWraooer(){
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
// queryWrapper.between("age",20,34);//查询的字段、开始范围、结束范围
queryWrapper.notBetween("age",20,34);
List<User> users=userMapper.selectList(queryWrapper);
for (User u:users) {
System.out.println("查询测试"+u);
}
}
结果
模糊查询like、notLike、likeLeft、likeRight
@Test
public void selectWraooer(){
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.like("name","o");
List<User> users=userMapper.selectList(queryWrapper);
for (User u:users) {
System.out.println("查询测试"+u);
}
}
模糊查询只要带有o
notLike、查询不包含当前传输词的
likeLeft、查询当前传入词结尾的
likeRight、查询当前传入词开头的
你们可以自己去测试一下
orderBy、orderByDesc、orderByAsc可以设置某个字段的升序查询或者降序查询
单一查询、根据年龄降序
@Test
public void selectWraooer(){
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.orderByDesc("age");
List<User> users=userMapper.selectList(queryWrapper);
for (User u:users) {
System.out.println("查询测试"+u);
}
}
多条件可以传入2个参数做降序查询
@Test
public void selectWraooer(){
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.orderByDesc("age","id");
List<User> users=userMapper.selectList(queryWrapper);
for (User u:users) {
System.out.println("查询测试"+u);
}
}
结果不演示了
顾名思义orderByAsc就是升序查询,同样的也是可以传入一个参数和多个参数。