每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一)(条件构造器)
每天玩转3分钟 MyBatis-Plus - 1. 配置环境
每天玩转3分钟 MyBatis-Plus - 2. 普通查询
每天玩转3分钟 MyBatis-Plus - 3. 高级查询
代码下载:https://github.com/Jackson0714/study-mybatis-plus.git
mybatis-plus的查询功能非常强大, 上一篇,我们介绍了mybatis-plus的普通查询功能,这一篇我们介绍mybatis-plus的高级查询功能。通过几个查询需求来讲解。
准备数据
User 表结构如下:
| id | name | age | |
|---|---|---|---|
| 1 | Jone | 18 | test1@baomidou.com |
| 2 | Jack | 20 | test2@baomidou.com |
| 3 | Tom | 28 | test3@baomidou.com |
| 4 | Sandy | 21 | test4@baomidou.com |
| 5 | Billie | 24 | test5@baomidou.com |
一、案例汇总(第一波)
1.1 查询名字中包含“Ja”并且年龄小于30的用户
难度系数 ★☆
1.2 查询名字中包含“a”并且年龄大于等于15且年龄小于等于25,且email不为空
难度系数 ★☆
1.3 查询名字中“J”开头并且年龄大于等于25,按照年龄降序排列,年龄相同按照id升序排列
难度系数 ★★★
二、案例讲解
1.1 查询名字中包含“Ja”并且年龄小于30的用户
难度系数 ★☆
考察 like、lt用法
name LIKE '%Ja%' age < 30
/*
* 描述:例2.1 查询名字中包含“Ja”并且年龄小于30的用户
* 作者:博客园-悟空聊架构
* 时间:2019-01-20
* Github:https://github.com/Jackson0714/study-mybatis-plus.git
* 博客园:https://www.cnblogs.com/jackson0714
* */
@Test
public void testSelectByQueryWrapper() {
System.out.println(("----- 查询名字中包含“Ja”并且年龄小于30的用户------"));
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "ja").lt("age", 30);
List<User> userList = userMapper.selectList(queryWrapper);
userList.forEach(System.out::println);
}

1.2 查询名字中包含“a”并且年龄大于等于15且年龄小于等于25,且email不为空
难度系数 ★☆
考察 between 用法
SQL语句:name LIKE '%a%' AND age BETWEEN 15 AND 25 AND email IS NOT NULL
/*
* 描述:例1.2 查询名字中包含“a”并且年龄大于等于15且年龄小于等于35,且email不为空
* 作者:博客园-悟空聊架构
* 时间:2019-01-20
* Github:https://github.com/Jackson0714/study-mybatis-plus.git
* 博客园:https://www.cnblogs.com/jackson0714
* */
@Test
public void testSelectByQueryWrapper2() {
System.out.println(("----- 查询名字中包含“a”并且年龄大于等于15且年龄小于等于25,且email不为空------"));
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//queryWrapper.like("name", "a").ge("age", 15).le("age", 25).isNotNull("email");
queryWrapper.like("name", "a").between("age", 15,25).isNotNull("email");
List<User> userList = userMapper.selectList(queryWrapper);
userList.forEach(System.out::println);
}

1.3 查询名字中“J”开头并且年龄大于等于25,按照年龄降序排列,年龄相同按照id升序排列
难度系数 ★★★
考察 likeRight、orderByDesc、orderByAsc 用法
SQL语句:name LIKE 'J%' or age > 25 ORDER BY age desc, id ASC
/*
* 描述:例1.3 查询名字中“J”开头并且年龄大于26,按照年龄降序排列,年龄相同按照id升序排列
* SQL语句:name LIKE 'J%' or age > 26 ORDER BY age desc, id ASC
* 作者:博客园-悟空聊架构
* 时间:2019-01-20
* Github:https://github.com/Jackson0714/study-mybatis-plus.git
* 博客园:https://www.cnblogs.com/jackson0714
* */
@Test
public void testSelectByQueryWrapper3() {
System.out.println(("----- 查询名字中包含“a”并且年龄大于26,按照年龄降序排列,年龄相同按照id升序排列 ------"));
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.likeRight("name","J").or().gt("age",26).orderByDesc("age")
.orderByAsc("id");
List<User> userList = userMapper.selectList(queryWrapper);
userList.forEach(System.out::println);
}

每天玩转3分钟 MyBatis-Plus - 1. 配置环境
每天玩转3分钟 MyBatis-Plus - 2. 普通查询
每天玩转3分钟 MyBatis-Plus - 3. 高级查询
关注公众号:悟空聊架构,回复pmp,领取pmp资料!回复悟空,领取架构师资料!
作 者:悟空聊架构
出 处:http://www.cnblogs.com/jackson0714/
关于作者:专注于移动开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!

悟空聊架构
关注我,带你每天进步一点点!
还有111本书籍赠送~~
每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一)(条件构造器)的更多相关文章
- mybatis中的高级查询
Mybatis作为一个ORM框架,肯定是支持sql高级查询的. 下面的一个案例来为大家详细讲解mybatis中的高级查询. 案例说明: 此案例的业务关系是用户,订单,订单详情与商品之间的关系. 以订单 ...
- 使用MyBatis的resultMap高级查询时常用的方式总结
以下内容已经通过楼主测试, 从pd设计数据库到测试完成, 之前楼主也没有过Mybatis 使用resultMap觉得有点乱,最近抽出时间总结了一下也算对MyBatis的resultMap进行一次系统的 ...
- 每天玩转3分钟 MyBatis-Plus - 2. 普通查询
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 mybatis-plus的查询功能非常强大, 这一篇,我们来看下mybati ...
- 每天玩转3分钟 MyBatis-Plus - 1. 配置环境
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 ...
- 每天玩转3分钟 MyBatis-Plus - 4. 高级查询(二)(条件构造器)
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一) 每天玩转 ...
- 每天玩转3分钟 MyBatis-Plus - 5. 高级查询(三)(条件构造器)
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一) 每天玩转 ...
- 每天玩转3分钟 MyBatis-Plus - 6. select 用法
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一) 每天玩转 ...
- MyBatis 高级查询环境准备(八)
MyBatis 高级查询 之前在学习 Mapper XML 映射文件时,说到 resultMap 标记是 MyBatis 中最重要最强大也是最复杂的标记,而且还提到后面会详细介绍它的高级用法. 听到高 ...
- MyBatis实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
随机推荐
- jQuery验证码发送时间秒递减(刷新存储cookie)
<input id="sendEmail" type="button" name="sendEmail" onclick=" ...
- CF809D Hitchhiking in the Baltic States
CF809D Hitchhiking in the Baltic States CF809D 长度为n的序列{xi},n<=3e5,范围在(li,ri)之间,求LIS最长是多长g(i,l)表示前 ...
- <Codeforce>1082A. Vasya and Book
题目描述: Vasya is reading a e-book. The file of the book consists of nn pages, numbered from 11 to nn. ...
- 【Repo】repo sync:error.GitError: cannot initialize work tree
1.Error Fetching projects: 100% (725/725), done. Checking out files: 100% (4605/4605), done.out file ...
- Android7_安卓的知识体系梳理
最近梳理了一下安卓的知识体系,先构建一个整体性的认知,也作为以后的学习路线的依据. [一.从原理角度出发]1.Activity生命周期和启动模式2.View的事件体系与工作原理3.四大组件的工作过程4 ...
- vue学习笔记(二)vue的生命周期和钩子函数
前言 通过上一章的学习,我们已经初步的了解了vue到底是什么东西,可以干什么,而这一篇博客主要介绍vue的生命周期和它常用的钩子函数,如果有学过java的园友可能有接触到在学习servlet的时候学过 ...
- MongoDB not authorized for query - code 13 错误解决办法
跟着教程走完到了鉴权阶段,不加 --auth 登陆正常,但会出现warning :没有鉴权,修改不会生效,此时登陆正常. 但是加上了--auth 启动之后加上密码登陆则无法登陆. 添加用户和鉴权: 先 ...
- IntelliJ Idea中的 Facets 与 Artifacts
在公司和家用电脑上不同版本的idea做实验发现过程中会有些不同,遇到过一些问题,也正是这些问题使得自己能更进一步了解项目构建过程中的细节,特别记录一下. 这个是[温故知新] Java web 开发 ...
- 【温故知新】Java web 开发(四)JSTL 与 JDBC 的增删改查
本篇开始使用 jstl 这个 jsp 的标签库,在同一个 Servlet 中实现处理 CRUD 请求,以及使用 jdbc 数据库基本操作.然后你会发现 Servlet 和 jdbc 还是有很多不方便之 ...
- 大白话抽象工厂模式(Abstract Factory Pattern)
实例分析 大白话工厂方法模式(Factory Method)一文中,我们讲解了日产4S店工厂规模的扩大,创建了针对不同车型的工厂,减少了工厂的工作内容,提高了效率.下面我们继续以4S店的故事讨论抽象工 ...