MyBatis-Plus Wrapper条件构造器查询大全
一、引言
那么那么那么今天来说下MP中强大的条件查询功能。
本章是基于上个案例来讲的:MyBaits-Plus 快速入门案例
二、具体操作
首先来说说基本的查询吧,根据主键或者简单的查询条件进行查询。
/*** 通过单个ID主键进行查询*/@Testpublic void selectById() {User user = userMapper.selectById(1094592041087729666L);System.out.println(user);}/*** 通过多个ID主键查询*/@Testpublic void selectByList() {List<Long> longs = Arrays.asList(1094592041087729666L, 1094590409767661570L);List<User> users = userMapper.selectBatchIds(longs);users.forEach(System.out::println);}/*** 通过Map参数进行查询*/@Testpublic void selectByMap() {Map<String, Object> params = new HashMap<>();params.put("name", "张雨琪");List<User> users = userMapper.selectByMap(params);users.forEach(System.out::println);}
MyBatis-Plus还提供了Wrapper条件构造器,具体使用看如下代码:
/*** 名字包含雨并且年龄小于40* <p>* WHERE name LIKE '%雨%' AND age < 40*/@Testpublic void selectByWrapperOne() {QueryWrapper<User> wrapper = new QueryWrapper();wrapper.like("name", "雨").lt("age", 40);List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 名字包含雨* 年龄大于20小于40* 邮箱不能为空* <p>* WHERE name LIKE '%雨%' AND age BETWEEN 20 AND 40 AND email IS NOT NULL*/@Testpublic void selectByWrapperTwo() {QueryWrapper<User> wrapper = Wrappers.query();wrapper.like("name", "雨").between("age", 20, 40).isNotNull("email");List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 名字为王性* 或者年龄大于等于25* 按照年龄降序排序,年龄相同按照id升序排序* <p>* WHERE name LIKE '王%' OR age >= 25 ORDER BY age DESC , id ASC*/@Testpublic void selectByWrapperThree() {QueryWrapper<User> wrapper = Wrappers.query();wrapper.likeRight("name", "王").or().ge("age", 25).orderByDesc("age").orderByAsc("id");List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 查询创建时间为2019年2月14* 并且上级领导姓王* <p>* WHERE date_format(create_time,'%Y-%m-%d') = '2019-02-14' AND manager_id IN (select id from user where name like '王%')*/@Testpublic void selectByWrapperFour() {QueryWrapper<User> wrapper = Wrappers.query();wrapper.apply("date_format(create_time,'%Y-%m-%d') = {0}", "2019-02-14").inSql("manager_id", "select id from user where name like '王%'");List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 查询王姓* 并且年龄小于40或者邮箱不为空* <p>* WHERE name LIKE '王%' AND ( age < 40 OR email IS NOT NULL )*/@Testpublic void selectByWrapperFive() {QueryWrapper<User> wrapper = Wrappers.query();wrapper.likeRight("name", "王").and(qw -> qw.lt("age", 40).or().isNotNull("email"));List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 查询王姓* 并且年龄大于20 、年龄小于40、邮箱不能为空* <p>* WHERE name LIKE ? OR ( age BETWEEN ? AND ? AND email IS NOT NULL )*/@Testpublic void selectByWrapperSix() {QueryWrapper<User> wrapper = Wrappers.query();wrapper.likeRight("name", "王").or(qw -> qw.between("age", 20, 40).isNotNull("email"));List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** (年龄小于40或者邮箱不为空) 并且名字姓王* WHERE ( age < 40 OR email IS NOT NULL ) AND name LIKE '王%'*/@Testpublic void selectByWrapperSeven() {QueryWrapper<User> wrapper = Wrappers.query();wrapper.nested(qw -> qw.lt("age", 40).or().isNotNull("email")).likeRight("name", "王");List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 查询年龄为30、31、32* WHERE age IN (?,?,?)*/@Testpublic void selectByWrapperEight() {QueryWrapper<User> wrapper = Wrappers.query();wrapper.in("age", Arrays.asList(30, 31, 32));List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 查询一条数据* limit 1*/@Testpublic void selectByWrapperNine() {QueryWrapper<User> wrapper = Wrappers.query();wrapper.in("age", Arrays.asList(30, 31, 32)).last("limit 1");List<User> users = userMapper.selectList(wrapper);users.forEach(System.out::println);}
MyBatis-Plus Wrapper条件构造器查询大全相关推荐
- MyBatis-Plus Wrapper条件构造器查询
/*** 通过单个ID主键进行查询*/@Testpublic void selectById() {User user = userMapper.selectById(1094592041087729 ...
- Mybatis-Plus中的查(select)和 Wrapper条件构造器-详解 V2.0
V1.0 已更新为 V-2.0 传送门→ (V-2.0)Mybatis-Plus中的查(select)和QueryWrapper条件构造器 前言 本文介绍 mybatis-plus 中 ...
- MyBatisPlus3.x中使用条件构造器查询某一天的记录数时的日期格式化注意
场景 前端传过来时间,比如是'2019-05-09' 后台使用条件构造器查询数据库中某一天的记录数. 因为涉及到时间格式的问题,如果直接用时间字段是否相等来判断则不行.所以这里使用MyBatisPlu ...
- MybatisPlus QueryWrapper(简称 QW,MP 封装的一个查询条件构造器)的使用和简单认识
上一篇讲的是MybatisPlus的MP注解用法和简单介绍 传送门 (跟上一篇是同一个项目)先来创一个Springboot测试项目 创建一个数据库 -- 创建表 CREATE TABLE t_empl ...
- MyBatisPlus条件构造器带条件查询selectList使用
场景 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194 基础搭建: https://blog.csdn.net/B ...
- 第 4 章 MybatisPlus 条件构造器
第 4 章 MybatisPlus 条件构造器 1.CRUD API 的思考 对于 BaseMapper 中基本 CRUD 方法的思考 继承了 BaseMapper 接口后,我们只能获得基本的 CRU ...
- MybatisPlus条件构造器说明以及selectPage方法
场景 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194 基础搭建: https://blog.csdn.net/B ...
- MybatisPlus核心功能——实现CRUD增删改查操作 (包含条件构造器)
条件构造器 一般都是用service层的方法,因为比mapper层的全.十分重要:Wrapper 记住查看输出的SQL进行分析 相当于创建一个构造器对象,然后讲需要查询or更新的条件写在里面,最后打包 ...
- MyBatisPlus中条件构造器中or和orNew的区别
场景 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194 实现 编写单元测试看区别 /****条件构造器 查询操作S ...
最新文章
- 【逆向工具】IDA使用5-( string、图形化与视图的切换、图形化显示反汇编地址、自动注释、标签使用)...
- xshell 5如何选中即复制,右键即粘贴
- SpringBoot_数据访问-整合Druid配置数据源监控
- python爬虫实际应用_如何使用python爬虫论坛?
- 添加公共引用目录_3分钟解决200页Word生成目录的问题,无需插件,领导看了直夸奖...
- 机器学习中的相似性度量(转载)
- 【SpringClould】SpringClould eureka 单机与集群搭建
- python一个函数可以有参数也可以没有参数_Python:有和没有关键字参数的lambda函数行为?...
- JavaEE之HTML常见标签及个人简历制作
- 《理财市场情绪监测系统》代码实现【1】之行业词库
- 实现离线地图行政区域划分
- Android 接入穿山甲广告
- 多模模块接单模光纤跳线/单模模块接多模光纤跳线
- 什么是类?以及类的分类
- 桂电计算机系入学怎么分班,桂电研究生-()学期课程总表
- Vue3初识 学习记录(一)
- JAVA第二次作业《胖瘦程度计算》
- 软件工程大作业(完整详细)火车订票管理系统
- NLPCC2023 | 视频定位问答比赛CMIVQA赛题解析
- python 三大器
热门文章
- PTA C语言找不同
- 均热板 热管_引入 “超导热管” “均热板” 新材料 进LED 手电,欢迎大...
- Word小技巧—页码设置问题
- 如何成为一个渗透测试员(国外知名黑客大神Corelan Team (corelanc0d3r)分享技术干货)
- 21.Mysql数据库连接配置
- 工信部:5G-A是5G向6G演进的关键阶段
- 如何解决centos8下载速度慢
- 内网安全之:Exchange 服务器安全
- 使用IronOCR识别图片文字
- 自己写的一个android作品—测名取名