QueryWrapper

说明:
      继承自 AbstractWrapper ,自身的内部属性 entity 也用于生成 where 条件
及 LambdaQueryWrapper, 可以通过 new QueryWrapper().lambda() 方法获取.

测试用表:

1. eq、ne

说明:

eq:等于,ne:不等于

测试:

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> wrapper = new QueryWrapper<>();
  4. //eq() 等于
  5. wrapper.eq("last_name", "皮皮虾");
  6. Employee one = employeeService.getOne(wrapper);
  7. System.out.println(one);
  8. }

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> wrapper = new QueryWrapper<>();
  4. //ne() 不等于
  5. wrapper.ne("gender", 0);
  6. List<Employee> list = employeeService.list(wrapper);
  7. System.out.println(list);
  8. }

2. gt、ge、lt、le

说明:

gt:大于,ge:大于等于,lt:小于,le:小于等于

测试:

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> gtWrapper = new QueryWrapper<>();
  4. //gt() 大于
  5. gtWrapper.gt("age", 27);
  6. List<Employee> gtList = employeeService.list(gtWrapper);
  7. System.out.println(gtList);
  8.  
  9. //**********************
  10.  
  11. QueryWrapper<Employee> geWrapper = new QueryWrapper<>();
  12. //ge() 大于等于
  13. geWrapper.ge("age", 26);
  14. List<Employee> geList = employeeService.list(geWrapper);
  15. System.out.println(geList);
  16. }

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> ltWrapper = new QueryWrapper<>();
  4. //lt() 小于
  5. ltWrapper.lt("age", 12);
  6. List<Employee> ltList = employeeService.list(ltWrapper);
  7. System.out.println(ltList);
  8.  
  9. //**********************
  10.  
  11. QueryWrapper<Employee> geWrapper = new QueryWrapper<>();
  12. //le() 小于等于
  13. leWrapper.le("age", 12);
  14. List<Employee> leList = employeeService.list(leWrapper);
  15. System.out.println(leList);
  16. }

3. between、notBetween

说明:

between:在值1和值2之间,notBetween:不在值1和值2之间

测试:

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> betweenWrapper = new QueryWrapper<>();
  4. //between() 区间的值
  5. betweenWrapper.between("age", 10, 20);
  6. List<Employee> betweenList = employeeService.list(betweenWrapper);
  7. System.out.println(betweenList );
  8.  
  9. //**********************
  10.  
  11. QueryWrapper<Employee> notBetweenWrapper = new QueryWrapper<>();
  12. //notBetween() 不在区间的值
  13. notBetweenWrapper.notBetween("age", 10, 21);
  14. List<Employee> notBetweenList = employeeService.list(notBetweenWrapper );
  15. System.out.println(notBetweenList );
  16. }

4. like、notLike、likeLeft、likeRight

说明:

like:’%值%’,notLike:’%值%’,likeLeft:’%值’,likeRight:'值%'

测试:

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> likeWrapper = new QueryWrapper<>();
  4. //like() 模糊查询匹配值
  5. likeWrapper.like("last_name", "s");
  6. List<Employee> likeList = employeeService.list(likeWrapper);
  7. System.out.println(likeList );
  8.  
  9. //**********************
  10.  
  11. QueryWrapper<Employee> notLikeWrapper = new QueryWrapper<>();
  12. //notLike() 模糊查询不匹配值
  13. notLikeWrapper.notLike("last_name", "s");
  14. List<Employee> notLikeList = employeeService.list(notLikeWrapper);
  15. System.out.println(notLikeList);
  16. }

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> likeLeftWrapper = new QueryWrapper<>();
  4. //likeLeft() 模糊查询匹配最后一位值
  5. likeLeftWrapper.likeLeft("last_name", "s");
  6. List<Employee> likeLeftList = employeeService.list(likeLeftWrapper);
  7. System.out.println(likeLeftList );
  8.  
  9. //**********************
  10.  
  11. QueryWrapper<Employee> likeRightWrapper = new QueryWrapper<>();
  12. //likeRight() 模糊查询匹配第一位值
  13. likeRightWrapper.likeRight("last_name", "s");
  14. List<Employee> likeRightList = employeeService.list(likeRightWrapper );
  15. System.out.println(likeRightList );
  16. }

5. isNull、isNotNull

说明:

isNull:字段 IS NULL,isNotNull:字段 IS NOT NULL

测试:

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> isNullWrapper = new QueryWrapper<>();
  4. //isNull() 为空
  5. isNullWrapper.isNull("email");
  6. List<Employee> isNullList = employeeService.list(isNullWrapper);
  7. System.out.println(isNullList );
  8.  
  9. //**********************
  10.  
  11. QueryWrapper<Employee> isNotNullWrapper = new QueryWrapper<>();
  12. //isNotNull() 不为空
  13. isNotNullWrapper.isNotNull("last_name", "s");
  14. List<Employee> isNotNullList = employeeService.list(isNotNullWrapper );
  15. System.out.println(isNotNullList );
  16. }

6. in、notIn

说明:

in:字段 IN (v0, v1, …),notIn:字段 NOT IN (value.get(0), value.get(1), …)

测试:

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> inWrapper = new QueryWrapper<>();
  4. //in() 符合多个条件的值
  5. inWrapper.in("age", 8, 16, 26);
  6. List<Employee> inList = employeeService.list(inWrapper);
  7. System.out.println(inList );
  8.  
  9. //**********************
  10.  
  11. QueryWrapper<Employee> notInWrapper= new QueryWrapper<>();
  12. //notIn() 不符合多个条件的值
  13. notInWrapper.notIn("age", 8, 16, 26);
  14. List<Employee> notInList = employeeService.list(notInWrapper);
  15. System.out.println(notInList );
  16. }

7. or、and

说明:

or:或者 ,and:和

注意事项:
主动调用or表示紧接着下一个方法不是用and连接!(不调用or则默认为使用and连接)

测试:

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> orWrapper = new QueryWrapper<>();
  4. //or() 查询age大于20 或者 gender等于1 的数据
  5. orWrapper.gt("age", 20).or().eq("gender", 1);
  6. List<Employee> orList = employeeService.list(orWrapper);
  7. System.out.println(orList );
  8. }

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> andWrapper = new QueryWrapper<>();
  4. //and() 查询last_name等于皮皮虾b 和 gender等于1 的数据 (不使用and() 默认就是and())
  5. andWrapper.eq("last_name", "皮皮虾b").eq("gender", 1);
  6. List<Employee> andList = employeeService.list(andWrapper );
  7. System.out.println(andList);
  8. }

8. orderByAsc、orderByDesc

说明:

orderByAsc:升序:ORDER BY 字段, … ASC,orderByDesc:降序:ORDER BY 字段, … DESC

测试:

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> Wrapper = new QueryWrapper<>();
  4. //orderByAsc() 升序排序
  5. Wrapper.orderByAsc("id");
  6. List<Employee> list = employeeService.list(Wrapper);
  7. for(Employee e : list) {
  8. System.out.println(e);
  9. }
  10. }

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> Wrapper = new QueryWrapper<>();
  4. //orderByDesc() 降序排序
  5. Wrapper.orderByDesc("id");
  6. List<Employee> list = employeeService.list(Wrapper);
  7. for(Employee e : list) {
  8. System.out.println(e);
  9. }
  10. }

9. inSql、notInSql (不常用)

说明:

inSql:字段 IN ( sql语句 ),notInSql:字段 NOT IN ( sql语句 )

测试:

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> inSqlWrapper = new QueryWrapper<>();
  4. //inSql() 符合sql语句的值
  5. inSqlWrapper .inSql("select id from employee where id < 10");
  6. List<Employee> inSqlList = employeeService.list(inSqlWrapper );
  7. System.out.println(inSqlList );
  8.  
  9. //**********************
  10.  
  11. QueryWrapper<Employee> notInSqlWrapper= new QueryWrapper<>();
  12. //notInSql() 不符合sql语句的值
  13. notInSqlWrapper.notInSql("select id from employee where id < 10");
  14. List<Employee> notInSqlList = employeeService.list(notInSqlWrapper);
  15. System.out.println(notInSqlList );
  16. }

10. exists、notExists (不常用)

说明:

exists:拼接 EXISTS ( sql语句 ),notExists:拼接 NOT EXISTS ( sql语句 )

测试:

  1. @Test
  2. public void contextLoads(){
  3. QueryWrapper<Employee> existsWrapper = new QueryWrapper<>();
  4. //exists() 查询符合sql语句的值
  5. existsWrapper.exists("select last_name,gender from employee where id = 1");
  6. List<Employee> existsList = employeeService.list(existsWrapper);
  7. System.out.println(existsList );
  8.  
  9. //**********************
  10.  
  11. QueryWrapper<Employee> notExistsWrapper = new QueryWrapper<>();
  12. //notExists() 查询不符合sql语句的值
  13. notExistsWrapper.notExists("select last_name,gender from employee where id = 1");
  14. List<Employee> notExistsList = employeeService.list(notExistsWrapper);
  15. System.out.println(notExistsList );
  16.  
  17. }

文章转载至:https://blog.csdn.net/llllllkkkkkooooo/article/details/108216957

MyBatis:条件构造器QueryWrapper方法详解的更多相关文章

  1. MybatisPlus学习(四)条件构造器Wrapper方法详解

    文章目录 1.条件构造器 2.QueryWrapper 2.1.eq.ne 2.2.gt.ge.lt.le 2.3.between.notBetween 2.4.like.notLike.likeLe ...

  2. MP实战系列(十二)之封装方法详解(续二)

    继续MP实战系列(十一)之封装方法详解(续一)这篇文章之后. 此次要讲的是关于查询. 查询是用的比较多的,查询很重要,好的查询,加上索引如鱼得水,不好的查询加再多索引也是无济于事. 1.selectB ...

  3. MP实战系列(十一)之封装方法详解(续一)

    之前写的封装方法详解,比较简要. 今天我主要讲增加和删除及其修改.查的话得单独再详讲. 增删改查,无论是Java或者C#等等,凡是对数据库操作的都离不开这四个. 一.增加方法讲解 MyBatis Pl ...

  4. Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(转)

    通过前面的学习,你可能大致了解了Quartz,本篇博文为你打开学习SSMM+Quartz的旅程!欢迎上车,开始美好的旅程! 本篇是在SSM框架基础上进行的. 参考文章: 1.Quartz学习——Qua ...

  5. 《深入理解mybatis原理6》 MyBatis的一级缓存实现详解 及使用注意事项

    <深入理解mybatis原理> MyBatis的一级缓存实现详解 及使用注意事项 0.写在前面   MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓 ...

  6. [转载]Mybatis Generator最完整配置详解

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  7. 008-Scala主构造器、私有构造器、构造器重载实战详解

    008-Scala主构造器.私有构造器.构造器重载实战详解 Scala主构造器实战 无参数的主构造器 分析 1.name 需要赋初值,一般通过占位符来代表空值 2.private 声明私有的age 生 ...

  8. C++调用JAVA方法详解

    C++调用JAVA方法详解          博客分类: 本文主要参考http://tech.ccidnet.com/art/1081/20050413/237901_1.html 上的文章. C++ ...

  9. $.each()方法详解

    $.each()方法详解 each()函数具有十分强大的遍历功能,可以遍历一维数组.多维数组.Dom.Json等. 在JavaScript中使用$.each可以大大减轻我们的工作量. 1.处理一维数组 ...

随机推荐

  1. Java 程序流程控制语句

    顺序语句 语句:使用分号分隔的代码称作为一个语句 注意:没有写任何代码只是一个分号的时候,也是一条语句,称作空语句 顺序语句就是按照从上往下的顺序执行的语句 Scanner scanner = new ...

  2. EasyUI_使用datagrid分页 (Day_28)

    本次分页涉及技术点 SSM+PageHelper+DatagrId 先来看下效果: 这是无条件分页,下一篇博客我们将讲有条件分页. 无论你是使用js加载table 还是直接使用标签. 使用datagr ...

  3. maven工具使用json-lib时,JSONArray.fromObject()不能执行的解决方案

    前端代码我就不展示了 ,下面说明下我遇到问题的情况,如果不想看可以直接划到黄色字体部分直接找解决方法哦~~(相关jar包我会放在云中,想要的自己下载哦,链接在视频最下面!!) 我的pom文件,如下,导 ...

  4. Elasticsearch常用DSL关键字

    Elasticsearch常用DSL关键字 query: 用于包含查询使用到的语法 match_all: 最简单的查询,获取索引所有数据,类似搜索 *.如:"query":{&qu ...

  5. RedisPool

    class RedisPool(object): instance = None def __init__(self, host='192.168.2.129', port=7000, passwor ...

  6. 多边形游戏——区间dp

    题目描述 多边形(Polygon)游戏是单人玩的游戏,开始的时候给定一个由N个顶点构成的多边形(图1所示的例子中,N=4),每个顶点被赋予一个整数值,而每条边则被赋予一个符号:+(加法运算)或者*(乘 ...

  7. LR: GLU-Net: Global-Local Universal Network for Dense Flow and Correspondences

    Abstract 在图像中简历稠密匹配是很重要的任务, 包括 几何匹配,光流,语义匹配. 但是这些应用有很大的挑战: 大的平移, 像素精度, 外观变化: 当前是用特定的网络架构来解决一个单一问题. 我 ...

  8. 关于MongoDB ObjectId的那些事儿

    ObjectId 是什么? 一句话,ObjectId 是 MongoDB 文档 _id(主键)的默认类型. ObjectId 的组成? ObjectId 使用 12 字节的存储空间,是一个由 24 个 ...

  9. JavaScript 中精度问题以及解决方案

    JavaScript 中的数字按照 IEEE 754 的标准,使用 64 位双精度浮点型来表示.其中符号位 S,指数位 E,尾数位M分别占了 1,11,52 位,并且在 ES5 规范 中指出了指数位E ...

  10. 编译原理-文法(G)和语言(L)

    1.设文法G2(S): S->AB A->aA|a B->bB|b G2(S)产生的语言是什么? 解:L(G2)={ambn|m,n≥1} 2.请给出产生语言为{anbn|n≥1}的 ...