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);

 }

 

 

 

 

相关推荐:

Mybatis-plus如何使用

这篇文章主要介绍“Mybatis-plus如何使用”,在日常操作中,相信很多人在Mybatis-plus如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mybatis-plus如何使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!Mybatis-Plus简介...

MyBatisPlus QueryWrapper多条件查询及修改方法是什么

这篇“MyBatisPlusQueryWrapper多条件查询及修改方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MyBatisPlusQueryWrapper多条件查询及修...

mybatisplus添加与修改的方法

本篇内容介绍了“mybatisplus添加与修改的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!mybaits-plus帮我们简化了CRUD,这次来说一下添加与修改的操作由于我们所有的SQL是不可...

MybatisPlus QueryWrapper常用方法有哪些

这篇文章主要介绍了MybatisPlus QueryWrapper常用方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MybatisPlus QueryWrapper常用方法有哪些文章都会有所收获,下面我们一起来看看吧。QueryWrappe...

如何在mybatisplus中正确的使用 in方法

这篇文章给大家介绍如何在mybatisplus中正确的使用in方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。步骤如下://查询到list集合 List<User> userList = userService.selectById(...

mybatisplus雪花算法生成Id怎么使用

这篇文章主要讲解了“mybatisplus雪花算法生成Id怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mybatisplus雪花算法生成Id怎么使用”吧!雪花算法实战1.建表DROP TABLE IF EXIS...

基于MybatisPlus插件TenantLineInnerInterceptor如何实现多租户功能

这篇文章主要介绍基于MybatisPlus插件TenantLineInnerInterceptor如何实现多租户功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!多租户技术的基本概念:多租户技术(英语:multi-tenancytechnology)或称多重租赁技术,是一种软...