【引言】

使用mybatis-plus框架的基础上,直接使用其中的条件参数进行查询还是很方便的。但每次使用到像大于、不等于这样一些不常用条件时,都需要现查,所以记录在这篇博客里,当作一个自己的查询手册。

【手册】

查询方式 说明
select 设置查询字段
and AND 语句,拼接 + AND (字段=值)
or OR 语句,拼接 + OR (字段=值)
eq 等于=
allEq 基于 map 内容等于=
ne 不等于<>
gt 大于>
ge 大于等于>=
lt 小于<
le 小于等于<=
like 模糊查询
notLike 模糊查询 NOT LIKE
in IN 查询
notIn NOT IN 查询
isNull NULL 值查询
isNotNull IS NOT NULL
groupBy 分组 GROUP BY
having HAVING 关键词
orderBy 排序 ORDER BY
orderAsc ASC 排序 ORDER BY
orderDesc DESC 排序 ORDER BY
exists EXISTS 条件语句
notExists NOT EXISTS 条件语句
between BETWEEN 条件语句
notBetween NOT BETWEEN 条件语句
last 拼接在最后,例如:last(“LIMIT 1”)

【示例】

之前《Mybatis-Plus 3.X 条件查询》博客中,也写过一些查询的使用,下面总结几个其中没有提到的,使用的mybatis-plus版本是3.1.1。

  • select查询指定字段

代码使用:

//查询作者和编码字段,返回Article中其他字段的值均为null
public Article searchOne(Integer id) {LambdaQueryWrapper<Article> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.select(Article::getAuthor,Article::getCode).eq(Article::getId,id);return articleMapper.selectOne(queryWrapper);
}

sql打印:

  • and和or:并且或者条件

代码使用:

public List<Article> searchMore(String keywords) {LambdaQueryWrapper<Article> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(Article::getCatId,10);queryWrapper.and(x->x.like(Article::getKeywords,keywords).or().like(Article::getTitle,keywords));return articleMapper.selectList(queryWrapper);
}

sql打印:

  • ge:大于等于条件

代码使用:

//查询条件:访问量大于等于100
public List<Article> searchByCondition() {LambdaQueryWrapper<Article> queryWrapper = new LambdaQueryWrapper<>();//大于等于queryWrapper.ge(Article::getVisits,100);//查询指定字段queryWrapper.select(Article::getAuthor,Article::getCode,Article::getTitle,Article::getVisits);return articleMapper.selectList(queryWrapper);
}

sql打印:

  • in:批量条件

代码使用:

//栏目Id属于10和20的
public List<Article> searchByCondition() {LambdaQueryWrapper<Article> queryWrapper = new LambdaQueryWrapper<>();//inLong[] catId = {10L,20L};List<Long> catList = Arrays.asList(catId);queryWrapper.in(Article::getCatId,catList);//查询指定字段queryWrapper.select(Article::getAuthor,Article::getCode,Article::getTitle,Article::getVisits);return articleMapper.selectList(queryWrapper);
}

sql打印:

  • between:范围条件

代码使用:

//查询发布时间在2020-05-01至2020-06-25
public List<Article> searchByCondition() {LambdaQueryWrapper<Article> queryWrapper = new LambdaQueryWrapper<>();//betweenqueryWrapper.between(Article::getPublishTime, LocalDate.of(2020,5,1),LocalDate.now().plusMonths(1));//查询指定字段queryWrapper.select(Article::getAuthor,Article::getCode,Article::getTitle,Article::getVisits);return articleMapper.selectList(queryWrapper);
}

sql打印:

  • order:排序条件

代码使用:

//查询指定栏目下所有,并按访问量和创建时间排序
public List<Article> searchByCondition() {LambdaQueryWrapper<Article> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(Article::getCatId,20);//查询指定字段queryWrapper.select(Article::getAuthor,Article::getCode,Article::getTitle,Article::getVisits);//按访问量和创建时间排序queryWrapper.orderByDesc(Article::getVisits).orderByAsc(Article::getCreateTime);return articleMapper.selectList(queryWrapper);
}

sql打印:

【Mybatis-Plus】条件参数查询手册相关推荐

  1. Mybatis多条件直接查询Param注解版

    1.UserMapper接口 package com.william.dao;import com.william.domain.QueryValueObject; import com.willia ...

  2. Mybatis多条件直接查询

    1.UserMapper接口 package com.william.dao;import com.william.domain.QueryValueObject; import com.willia ...

  3. mybatis多条件批量查询_Mybatis【14】 Mybatis如何实现一对多查询?

    注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-10-one2many,需要自取,需要配置mave ...

  4. tk.mybatis的条件Example查询

    1.方式一 Example example = new Example(Cart.class); example.createCriteria().andEqualTo("userId&qu ...

  5. 西部数据----移动硬盘---参数查询手册

    Company Initials        公司的英文缩写 branded product identifier      品牌产品标识符 Product Code    产品代码 Capacit ...

  6. Mybatis-Plus 的条件参数

    1.配置Mybatis-Plus之后,免去了写sql的麻烦性,也降低了bug的出现率,提高的效率,不失为一种良策 2.用到的Mybatis-Plus条件参数 查询方式 说明 where WHERE 语 ...

  7. Mybatis传入参数类型为ListIntergert作为条件进行查询

    Mybatis传入参数类型为List作为条件进行查询 higher2017关注 2017.02.07 10:23:16字数 130阅读 5,658 表结构: 表名称为constant 需求: 现在想查 ...

  8. mybatis多条件查询处理方案(查询条件为数据库字段非传递参数)

    问题说明     关于多条件查询,大部分遇到的场景是根据传递参数的不同查询符合参数字段的数据信息.mybatis中使用频率最高的是if标签.但if标签中的test属性只支持传递参数进行判断是否相等,不 ...

  9. MyBatis——占位符,转义字符,多元素查询(模糊查询),动态sql(多条件中多查询,多条件中单查询)

    占位符:${},#{} ${}:充当占位符时,无法防止sql注入,纯纯的外面给啥,他就往上放啥 #{}:充当-,可以防止sql注入 实体类: package com.itjh.pojo;public ...

  10. mybatis中的foreach条件参数过多时,#和$效率比较

    背景 最近对mybatis的in查询做优化时,看到一个有趣的方法,使用外部拼接好查询条件,然后用$符合,直接替代了mybatis内部foreach,特地在本地上做个评测 看到一篇文章,当foreach ...

最新文章

  1. PACBIO:经历9件大事,终获一致认可?
  2. 2017.10.9 JVM入门学习
  3. 单片微机原理P4:80C51串口与串行总线拓展
  4. Sharepoint学习笔记---如何在Sharepoint2010网站中整合Crystal Report水晶报表(显示数据 二)...
  5. CV中多的空格导致报错
  6. html自定义列表 嵌套,HTML 列表
  7. C++ 学习基础篇(一)—— C++与C 的区别
  8. 为右键新建菜单添加内容
  9. C++笔记-二维棋盘数组转邻接表(使用QTL)
  10. 剑指offer面试题33. 二叉搜索树的后序遍历序列(二叉树)(递归)
  11. “购物比价类”Target SDK≥26优秀应用展示
  12. ios定制中间突出的tabBar
  13. matlab2014b下载 32位,matlab 2014b 32位
  14. MetaTrader5平台 Python
  15. 从外包月薪5K到阿里月薪15K,大厂面试必备技能
  16. python_计算一张纸对折多少次超过珠峰
  17. 飞桨AI Studio之加州房价预测——机器学习的Hello world
  18. There are 2 audio listeners in the scene.的问题
  19. 独立显卡跟集成显卡有什么差别?
  20. GitChat · 软件工程 | 一小时教你学会 Maven 项目的构建与管理

热门文章

  1. 目前可行的4种知网文献免费下载方法分享
  2. python中的def是什么意思啊_等号上面有个def是什么意思?
  3. python def是什么意思-python里面def是什么意思
  4. android gc卡顿,由于频繁GC造成的界面卡顿原因分析
  5. 【安全热点】阿里巴巴月饼门,观点两极化,孰对孰错?
  6. Windows系统中Word文档在插入公式时,公式按钮是灰色的(无法插入公式)的解决办法
  7. android长度测量工具,手机测量尺子工具
  8. 五年产品经理的转正述职报告(附PPT下载)
  9. matlab画一只猫,【MATLAB系列04】当一只猫遇见了Matlab
  10. Win10 卸载了某软件,右键还有该软件,如何删除呢?