MybatisPlus使用Wrapper实现查询功能

Posted LonZyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MybatisPlus使用Wrapper实现查询功能相关的知识,希望对你有一定的参考价值。

Wrapper---条件查询器

  :使用它可以实现很多复杂的查询

 

几个案例

 

 环境:

  参照博客MybatisPlus入门程序

 

1.条件查询

1.1 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12的用户

//查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12
 @Test
 void selectBy01(){
 ​
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     wrapper
             .isNotNull("name") //name不为空的用户
             .isNotNull("email") //邮箱不为空的用户
             .ge("age",12); //年龄大于等于12
 ​
     userMapper.selectList(wrapper).forEach(System.out::println);
 }

结果

 

 

1.2 查询 name"Jone" 的用户

//查询name为 "Jone" 的用户
 @Test
 void selectBy02(){
 ​
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     wrapper.eq("name","Jone"); //name为 "Jone" 的用户
//查询一个数据,为多个用 selectList 或者 selectByMap
     User user = userMapper.selectOne(wrapper);
 ​
     System.out.println(user);
 }

结果

 

1.3 查询 10 到 20 岁的用户数

 //查询 10 到 20 岁的用户数
 @Test
 void selectBy03(){
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     wrapper.between("age",10,20);
 ​
     Integer count = userMapper.selectCount(wrapper);
     //查询 10 到 20 岁的用户的结果数
 ​
     System.out.println(count);
 }

结果

 

 

2.模糊查询

2.1 使用 like + notLike + likeRight

 @Test
 void selectLike01(){
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     wrapper
             .notLike("name","To") //名字不包含 To
             .like("name","o") //名字包含 o 的
             //左和右 左:%e   右:e%  两边:%e%
             //右查询
             .likeRight("email","test");
 ​
     List<Map<String, Object>> users = userMapper.selectMaps(wrapper);
     users.forEach(System.out::println);
 }

结果

 

2.2 子查询

 @Test
 void selectLike02(){
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     wrapper
             //一个SQL语句写的子查询
             .inSql("id","select id from user where age<20");
 ​
     List<Object> users = userMapper.selectObjs(wrapper);
     users.forEach(System.out::println);
 }

结果

 

2.3 降序排序

@Test
 void selectLike03(){
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     //降序排序
     wrapper.orderByDesc("id");
     //升序排序
     //wrapper.orderByAsc("id");
 ​
     List<User> users = userMapper.selectList(wrapper);
     users.forEach(System.out::println);
 }

结果

 

以上是关于MybatisPlus使用Wrapper实现查询功能的主要内容,如果未能解决你的问题,请参考以下文章

MybatisPlus条件构造器wrapper方法的使用

MybatisPlus条件构造器wrapper方法的使用

MybatisPlus实现基本CURD&逻辑删除&代码生成(对标Django系列学习二)

02-myBatisPlus的wrapper接口的使用

SpringBoot 加 MybatisPlus高级查询

MybatisPlus 学习条件构造器和常用接口