MyBatis-Plus Wrapper条件构造器查询大全

 

https://blog.csdn.net/weixin_38111957/article/details/91447509

MyBatis-Plus Wrapper条件构造器查询大全

IT贱男 2019-06-11 16:50:44  36133  收藏 66

分类专栏: Mybatis-Plus

版权

码农必备linux技能

本专栏主要从系统安装、入门命令讲解,会不定期更新公司服务架构安装使用教程(如:Es、MQ、jenkins等等)。还不会linux? 赶紧跟我一起学习吧!

IT贱男

¥29.90

订阅博主

一、引言

那么那么那么今天来说下MP中强大的条件查询功能。

本章是基于上个案例来讲的:MyBaits-Plus 快速入门案例

二、具体操作

首先来说说基本的查询吧,根据主键或者简单的查询条件进行查询。

 
  1. /**

  2. * 通过单个ID主键进行查询

  3. */

  4. @Test

  5. public void selectById() {

  6. User user = userMapper.selectById(1094592041087729666L);

  7. System.out.println(user);

  8. }

  9.  
  10. /**

  11. * 通过多个ID主键查询

  12. */

  13. @Test

  14. public void selectByList() {

  15. List<Long> longs = Arrays.asList(1094592041087729666L, 1094590409767661570L);

  16. List<User> users = userMapper.selectBatchIds(longs);

  17. users.forEach(System.out::println);

  18. }

  19.  
  20. /**

  21. * 通过Map参数进行查询

  22. */

  23. @Test

  24. public void selectByMap() {

  25. Map<String, Object> params = new HashMap<>();

  26. params.put("name", "张雨琪");

  27. List<User> users = userMapper.selectByMap(params);

  28. users.forEach(System.out::println);

  29. }

MyBatis-Plus还提供了Wrapper条件构造器,具体使用看如下代码:

 
  1. /**

  2. * 名字包含雨并且年龄小于40

  3. * <p>

  4. * WHERE name LIKE '%雨%' AND age < 40

  5. */

  6. @Test

  7. public void selectByWrapperOne() {

  8. QueryWrapper<User> wrapper = new QueryWrapper();

  9. wrapper.like("name", "雨").lt("age", 40);

  10. List<User> users = userMapper.selectList(wrapper);

  11. users.forEach(System.out::println);

  12. }

  13.  
  14. /**

  15. * 名字包含雨

  16. * 年龄大于20小于40

  17. * 邮箱不能为空

  18. * <p>

  19. * WHERE name LIKE '%雨%' AND age BETWEEN 20 AND 40 AND email IS NOT NULL

  20. */

  21. @Test

  22. public void selectByWrapperTwo() {

  23. QueryWrapper<User> wrapper = Wrappers.query();

  24. wrapper.like("name", "雨").between("age", 20, 40).isNotNull("email");

  25. List<User> users = userMapper.selectList(wrapper);

  26. users.forEach(System.out::println);

  27. }

  28.  
  29. /**

  30. * 名字为王性

  31. * 或者年龄大于等于25

  32. * 按照年龄降序排序,年龄相同按照id升序排序

  33. * <p>

  34. * WHERE name LIKE '王%' OR age >= 25 ORDER BY age DESC , id ASC

  35. */

  36. @Test

  37. public void selectByWrapperThree() {

  38. QueryWrapper<User> wrapper = Wrappers.query();

  39. wrapper.likeRight("name", "王").or()

  40. .ge("age", 25).orderByDesc("age").orderByAsc("id");

  41. List<User> users = userMapper.selectList(wrapper);

  42. users.forEach(System.out::println);

  43. }

  44.  
  45. /**

  46. * 查询创建时间为2019年2月14

  47. * 并且上级领导姓王

  48. * <p>

  49. * WHERE date_format(create_time,'%Y-%m-%d') = '2019-02-14' AND manager_id IN (select id from user where name like '王%')

  50. */

  51. @Test

  52. public void selectByWrapperFour() {

  53. QueryWrapper<User> wrapper = Wrappers.query();

  54. wrapper.apply("date_format(create_time,'%Y-%m-%d') = {0}", "2019-02-14")

  55. .inSql("manager_id", "select id from user where name like '王%'");

  56. List<User> users = userMapper.selectList(wrapper);

  57. users.forEach(System.out::println);

  58. }

  59.  
  60. /**

  61. * 查询王姓

  62. * 并且年龄小于40或者邮箱不为空

  63. * <p>

  64. * WHERE name LIKE '王%' AND ( age < 40 OR email IS NOT NULL )

  65. */

  66. @Test

  67. public void selectByWrapperFive() {

  68. QueryWrapper<User> wrapper = Wrappers.query();

  69. wrapper.likeRight("name", "王").and(qw -> qw.lt("age", 40).or().isNotNull("email"));

  70. List<User> users = userMapper.selectList(wrapper);

  71. users.forEach(System.out::println);

  72. }

  73.  
  74. /**

  75. * 查询王姓

  76. * 并且年龄大于20 、年龄小于40、邮箱不能为空

  77. * <p>

  78. * WHERE name LIKE ? OR ( age BETWEEN ? AND ? AND email IS NOT NULL )

  79. */

  80. @Test

  81. public void selectByWrapperSix() {

  82. QueryWrapper<User> wrapper = Wrappers.query();

  83. wrapper.likeRight("name", "王").or(

  84. qw -> qw.between("age", 20, 40).isNotNull("email")

  85. );

  86. List<User> users = userMapper.selectList(wrapper);

  87. users.forEach(System.out::println);

  88. }

  89.  
  90. /**

  91. * (年龄小于40或者邮箱不为空) 并且名字姓王

  92. * WHERE ( age < 40 OR email IS NOT NULL ) AND name LIKE '王%'

  93. */

  94. @Test

  95. public void selectByWrapperSeven() {

  96. QueryWrapper<User> wrapper = Wrappers.query();

  97. wrapper.nested(qw -> qw.lt("age", 40).or().isNotNull("email"))

  98. .likeRight("name", "王");

  99. List<User> users = userMapper.selectList(wrapper);

  100. users.forEach(System.out::println);

  101. }

  102.  
  103. /**

  104. * 查询年龄为30、31、32

  105. * WHERE age IN (?,?,?)

  106. */

  107. @Test

  108. public void selectByWrapperEight() {

  109. QueryWrapper<User> wrapper = Wrappers.query();

  110. wrapper.in("age", Arrays.asList(30, 31, 32));

  111. List<User> users = userMapper.selectList(wrapper);

  112. users.forEach(System.out::println);

  113. }

  114.  
  115. /**

  116. * 查询一条数据

  117. * limit 1

  118. */

  119. @Test

  120. public void selectByWrapperNine() {

  121. QueryWrapper<User> wrapper = Wrappers.query();

  122. wrapper.in("age", Arrays.asList(30, 31, 32)).last("limit 1");

  123. List<User> users = userMapper.selectList(wrapper);

  124. users.forEach(System.out::println);

  125. }

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用阿里云身份证扫描识别接口案例——CSDN博客

/*** * Title: idcard* Description: 该方法的主要作用&#xff1a;扫描身份证* param return 设定文件 * return 返回类型&#xff1a;String * throws*/public void idcard(){String host "https://dm-51.data.aliyun.com";String path "/rest/160601/…

.NET异常设计原则

异常是使用.NET时必然会遇到的问题&#xff0c;但是&#xff0c;有太多的开发人员没有从API设计的角度考虑这个问题。在大部分工作中&#xff0c;他们自始至终都知道需要捕获什么异常以及哪些异常需要写入全局日志。如果你设计了可以让你正确使用异常的API&#xff0c;则可以显…

深入理解分布式系统的2PC和3PC

转载自 深入理解分布式系统的2PC和3PC 关注我的博客&#xff08;http://www.hollischuang.com&#xff09;的人可能都知道&#xff0c;我之前写过一篇文章专门介绍了一下2PC和3PC&#xff08;详见&#xff1a;关于分布式事务、两阶段提交协议、三阶提交协议&#xff09;。上一篇…

java 百度经纬度 转换为 高德经纬度 谷歌

https://lbs.amap.com/api/webservice/guide/api/convert/#convert https://restapi.amap.com/v3/assistant/coordinate/convert?locations116.481499,39.990475&coordsysgps&outputxml&key<用户的key> https://console.amap.com/dev/key/app https://conso…

方法的重写VS重载

方法的重写&#xff08;override&#xff09; 方法的重写 子类从父类中继承方法&#xff0c;有时&#xff0c;子类需要修改父类中定义的方法的实现&#xff0c;这称做方法的重写(method overriding)。“重写”的概念与“重载”相似&#xff0c;它们均是Java“多态”的技术之一&…

使用阿里云火车票查询接口案例——CSDN博客

首先我们需要一个实体类&#xff0c;专门放火车票信息的封装类&#xff0c;实体类&#xff1a; Train.java: /** * Title: Train.java * Package cn.bdqn.guanMingSys.entity * Description: TODO该方法的主要作用&#xff1a; * author A18ccms A18ccms_gmail_com * dat…

权衡微服务

很多开发团队已经认识到 微服务架构比单体架构更优越。但是也有其他团队感觉到这是一种消弱生产力的负担。就像任何软件架构&#xff0c;微服务架构同样有利弊。为了能做出一个明智的选择&#xff0c;你必须了解这些应用并将它们运用到你特定的环境中。 微服务的优势 具有边界的…

使用IDM下载,不适用默认浏览器下载

google浏览器是不能够安装的除非有v*p*n&#xff08;&#xff09; Firefox浏览器可以安装js脚本 推荐使用 1 google 扩展 IDMan628 扩展程序里面加 IDMGCExt.crx 2 扩展Tampermonkey 加Tampermonkey.crx 3 点击Tampermonkey 的仪表盘 右上角加按钮 百度网盘直接下载助手…

深入分析事务的隔离级别

转载自 [中级]深入分析事务的隔离级别 本文详细介绍四种事务隔离级别&#xff0c;并通过举例的方式说明不同的级别能解决什么样的读现象。并且介绍了在关系型数据库中不同的隔离级别的实现原理。 在DBMS中&#xff0c;事务保证了一个操作序列可以全部都执行或者全部都不执行&am…

使用阿里云智能翻译接口案例——CSDN博客

/*** * Title: getTranslates* Description: 该方法的主要作用&#xff1a;智能翻译* param 设定文件 * return 返回类型&#xff1a;void * throws*/public void getTranslates(){String host "https://dm-11.data.aliyun.com";String path "/rest/160…

ASP.NET Core 中的那些认证中间件及一些重要知识点

前言 在读这篇文章之间&#xff0c;建议先看一下我的 ASP.NET Core 之 Identity 入门系列&#xff08;ASP.NET Core 之 Identity 入门&#xff08;一&#xff09;&#xff0c;ASP.NET Core 之 Identity 入门&#xff08;二&#xff09;&#xff0c;ASP.NET Core 之 Identity 入…

判断个十百千位之后是否大于20 java——CSDN博客

/*** * Title: test_draw_a_lottery_or_raffle* Description: 该方法的主要作用&#xff1a;输入四位数&#xff0c;各位数数字之和大于20 中奖&#xff0c;否则没中奖* param 设定文件 * return 返回类型&#xff1a;void * throws*/Testpublic void test_draw_a_lotte…

mybatis-plus 错误java.lang.NoClassDefFoundError: org/apache/velocity/context/Context

https://blog.csdn.net/qq_39609151/article/details/82855305 mybatis-plus 错误java.lang.NoClassDefFoundError: org/apache/velocity/context/Context Murphy_fly 2018-09-26 16:41:55 27168 收藏 15 分类专栏&#xff1a; 框架 版权 使用mybatis-plus自动生成文件的时…

向上类型转换VS向下类型转换

子类转换成父类时的规则: 将一个父类的引用指向一个子类的对象&#xff0c;称为向上转型(upcasting)&#xff0c;自动进行类型转换。此时通过父类引用调用的方法是子类覆盖或继承父类的方法&#xff0c;不是父类的方法。 此时通过父类引用变量无法调用子类特有的方法&#xff…

彻底理解数据库事务

转载自 彻底理解数据库事务 事务 事务(Transaction)&#xff0c;一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在计算机术语中&#xff0c;事务通常就是指数据库事务。 概念 一个数据库事务通常包含对数据库进行…

.NET 使用 RabbitMQ 图文简介

前言 最近项目要使用RabbitMQ&#xff0c;园里里面已经有很多优秀的文章&#xff0c;Rabbitmq官网也有.net实例。这里我尝试下图文并茂之形式记录下使用的过程。 安装 RabbitMQ是建立在erlang OTP平台下&#xff0c;因此在windows下需要下载并安装以下两个组件&#xff1a; 1. …

使用java交换两个数——CSDN博客

/*** * Title: test_exchange* Description: 该方法的主要作用&#xff1a;交换两个数* param 设定文件 * return 返回类型&#xff1a;void * throws*/Testpublic void test_exchange(){int num1 10;int num2 20;int exchange 0;System.out.println("原来的…

Springboot+MyBatis-plus+postgresSQL 的整合

https://blog.csdn.net/xuxiannian/article/details/99625085 SpringbootMyBatis-pluspostgresSQL 的整合 禛陌 2019-08-15 12:20:10 6752 收藏 7 分类专栏&#xff1a; 技术相关 文章标签&#xff1a; SpringbootMyBatis-pluspostgresSQL 版权 磨叨一下 MyBatis-plus 请…

String中的compareTo()方法

compareTo()方法 String类中的compareTo()方法将返回两个字符串对象的比较结果&#xff0c;若相等&#xff0c;返回0。不相等时&#xff0c;从两个字符串第1个字符开始比较&#xff0c;返回第一个不相等的字符差&#xff1b;另一种情况&#xff0c;较长字符串的前面部分恰巧是较…