Mybatis plus 之 QueryWrapper、LambdaQueryWrapper、LambdaQueryChainWrapper
1、QueryWrapper
QueryWrapper 使用的是数据库的字段名
/*** (年龄小于40或邮箱不为空)且姓王* SELECT * FROM `user`* WHERE (`age`< 40 OR `email` IS NOT NULL) AND `name` LIKE '王%'*/@Testpublic void selectList_nested() {QueryWrapper<User> query = new QueryWrapper<>();query.nested(q -> q.lt("age", 40).or().isNotNull("email")).likeRight("name", "王");List<User> list = userMapper.selectList(query);list.forEach(System.out::println);}@Testpublic void selectList_entity() {User whereUser = new User();whereUser.setName("刘");whereUser.setAge(32);whereUser.setEmail("");QueryWrapper<User> query = new QueryWrapper<>(whereUser);List<User> list = userMapper.selectList(query);list.forEach(System.out::println);}
2、LambdaQueryWrapper
LambdaQueryWrapper使用的是Lambda语法
@Testpublic void mySelect() {LambdaQueryWrapper<User> query = new LambdaQueryWrapper<>();query.likeRight(User::getName, "王").and(q -> q.lt(User::getAge, 40).or().isNotNull(User::getEmail));List<User> list = userMapper.selectAll(query);list.forEach(System.out::println);}
3、LambdaQueryChainWrapper
链式查询
/*** 链式lambda条件构造器:更优雅的书写方式*/@Testpublic void lambdaQueryChainWrapper() {List<User> list = new LambdaQueryChainWrapper<User>(userMapper).likeRight(User::getName, "王").and(q -> q.lt(User::getAge, 40).or().isNotNull(User::getEmail)).list();list.forEach(System.out::println);}
4、三者区别
1、QueryWrapper 直接使用写死“列名”方式,容易因拼写错误导致异常,当字段名称发生改变,导致额外更多检查和修改工作。如有错误,运行时报错。或者需要封装查询类的对象,增加代码量。
2、LambdaQueryWrapper 使用lambda表达式,如有错误,编译期就会报错;灵活。【推荐】
3、LambdaQueryChainWrapper,写法偏向于炫技,可读性没有上面的代码强。
Mybatis plus 之 QueryWrapper、LambdaQueryWrapper、LambdaQueryChainWrapper相关推荐
- mybatis框架中的queryWrapper的or查询,联想到MySQL中and 和or的关系
统计的原生SQL应该是这样的: SELECTCOUNT( 1 ) FROMtable_name WHERE( id = '679135XXXXXXX1212' AND ( STATUS = 1 OR ...
- mybatis plus条件拼接
mybatis plus条件拼接 条件构造器 案例table AbstractWrapper allEq:全部eq(或个别isNull) eq:等于 = ne:不等于 <> gt:大于 & ...
- mybatis plus按时间段查询_你应该知道的这些Mybatis-Plus使用技巧(小结)
最近在用 Mybatis-Plus,嗯,真香!!!今天就来说说 Mybatis-Plus 的那些使用技巧 1.条件查询(QueryWrapper) 如果说,我们需要查询的 SQL 语句如下: SELE ...
- free mybatis 不生效_这些Mybatis-Plus的使用小技巧,你应该知道的!
最近在用 Mybatis-Plus,嗯,真香!!!今天就来说说 Mybatis-Plus 的那些使用技巧 1.条件查询(QueryWrapper) 如果说,我们需要查询的 SQL 语句如下: SELE ...
- Spring boot 实战指南(二):Mybatis、动态绑定、多数据源、分页插件、Mybatis-Plus
文章目录 一.整合Mybatis 1.搭建数据库环境 2.基于注解整合Mybatis (1)创建项目 (2)具体代码实现 (3)测试 3.基于xml整合Mybatis 4.Mybatis的动态SQL ...
- MyBatis Plus使用文档记录说明
文章目录 MyBatis Plus 基础篇 一.简介 拥有强大的特性 二.框架结构 三.基本开发环境 1. 准备数据 2. Hello World 第一步:创建一个 Spring Boot 项目 第二 ...
- MyBatis Plus基础理论以及实战
MyBatis Plus 基础篇 项目地址:https://gitee.com/ldxdong/mybatis-plus 一.简介 MyBatis 是一个半自动的 ORM 框架. MyBatis-Pl ...
- MyBatis-Plus学习总结
MyBatis-Plus学习总结 什么是MyBatis-Plus? MyBatis-Plus的优点有哪些? 快速开始(在SpringBoot中使用MP) MyBatis-Plus常用注解 MyBati ...
- 学习MyBatis-Plus3这一篇就够了
目录 第一章 MyBatis-Plus3概述 1.1.简介 1.2.特性 1.3.框架结构 1.4.项目地址 1.5.版本介绍 1.6.快速安装 1.7.开发环境 第二章 MyBatis-Plus3增 ...
最新文章
- c语言宏定义_掌握C语言,中文编程不是梦
- Python+opencv 机器视觉 - 基于霍夫圈变换算法检测图像中的圆形实例演示
- 深度解密之HDU3826(Square free number)
- 轻松几步搞定SSH连接Git配置
- js 将video的第一帧 转为图片
- Beyond Saliency map
- apk反编译、smali修改、回编译笔记
- hive 操作(四)
- 基于大众点评字体库的字体反爬案例
- 架设传奇时打开DBC数据库出错或读取DBC失败解决方法
- 新点软件怎么导入清单_【新点软件怎么导出到excel】新点造价软件怎么导入清单...
- 28种美女最漂亮的拍照姿势
- 程序物语(五):经营自己的程序生涯
- Vue 2.x折腾记 - (17) 基于Ant Design Vue 封装一个配置式的表单组件
- Vue 和 React 的diff有什么不同
- git设置用户名和邮箱地址
- QQShow?你也可以做!
- R和R-Studio安装
- Voice meter 下载与安装
- 开源WebGIS开发2——开发环境(IntelliJ IDEA)