Mybatis-Plus高级之LambdaQueryWrapper,Wrappers.<实体类>lambdaQuery的使用
一、前言
小编今天又来分享干货了,绝对的干净又卫生,大伙请放心食用哈!Mybatis-Plus我们经常使用,但是里面的很多功能,小编开始只是知道一点点,做个增删改查没问题。小编在新项目中发现,大神们不使用QueryWrapper,而是使用LambdaQueryWrapper,于是小编研究了一下,发现真香啊!!赶紧马不停蹄的写下这篇文章,大家一起进步哈!
二、LambdaQueryWrapper和QueryWrapper优缺点
我们在使用前要思考一下,这个东西和QueryWrapper有啥区别,为啥要用LambdaQueryWrapper呢?
别急,小编来告诉一下,lambda是JDK8的新特性,大家都知道很好用!Mybatis-Plus也想到了,于是LambdaQueryWrapper出来了!
LambdaQueryWrapper优点:以前的QueryWrapper比如一个eq("数据库字段名字","值"),我们在表字段设计时,很多都是_拼接的,很容易把数据库字段名输入错误!所以我们使用LambdaQueryWrapper,不需要输入数据库字段名字,输入实体类的对应驼峰命名即可!!
我们开始进入例子演示哈!!
三、引入Maven
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
四、LambdaQueryWrapper三种写法
为了测试方便,小编直接在controller测试!
@RestController
@RequestMapping("/test")
@Slf4j
@RequiredArgsConstructor
public class TestController {
private final TestService testService;
@NonNull
private TestMapper testMapper;
@GetMapping("/testLambda")
public Result testLambda(){
LambdaQueryWrapper<Test> query = new LambdaQueryWrapper<>();
query.select(Test::getName).eq(Test::getId,14);
List<Test> tests1 = testMapper.selectList(query);
List<Test> tests2 = testMapper.selectList(Wrappers.<Test>lambdaQuery().eq(Test::getId,14));
List<Test> tests3 = testMapper.selectList(Wrappers.<Test>query().lambda().eq(Test::getId,16));
System.out.println(tests1);
System.out.println(tests2);
System.out.println(tests3);
return Result.success("成功");
}
}
如果对@RequiredArgsConstructor不了解的可以看一下小编的这篇文章!@RequiredArgsConstructor代替@Autowrired
五、测试SQL执行展示
我们看到sql都是一样的,所以喜欢那种按自己的习惯吧!

六、LambdaQueryWrapper构造器查询
/**
*附加条件构造器LambdaQueryWrapper常用方法 ---这几个肯定够用了
*/
wrapper.eq("实体类::查询字段", "条件值"); //相当于where条件
wrapper.between("实体类::查询字段", "区间一", "区间二");//相当于范围内使用的between
wrapper.like("实体类::查询字段", "模糊查询的字符"); //模糊查询like
wrapper.groupBy("实体类::查询字段"); //相当于group by分组
wrapper.in("实体类::查询字段", "包括的值,分割"); //相当于in
wrapper.orderByAsc("实体类::查询字段"); //升序
wrapper.orderByDesc("实体类::查询字段");//降序
wrapper.ge("实体类::查询字段", "要比较的值"); //大于等于
wrapper.le("实体类::查询字段", "要比较的值"); //小于等于
七、总结
铛铛铛!!测试终于结束,恭喜大家学到新东西,本来会的就赶紧关掉页面!小编灰溜溜的跑路了!总之分享小知识给大家还是挺开心的!!如果感觉有用,不妨点个关注,我们来日方长哈!!
有缘人才可以看得到的哦!!!
Mybatis-Plus高级之LambdaQueryWrapper,Wrappers.<实体类>lambdaQuery的使用的更多相关文章
- mybatis学习笔记(四)-- 为实体类定义别名两种方法(基于xml映射)
下面示例在mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现 Demo的基础上进行优化 以新增一个用户为例子,原UserMapper.xml配置如下: < ...
- Mybatis动态构建Sql(无实体类)
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. 例如,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询 ...
- MyBatis中解决字段名与实体类属性名不相同的冲突
一: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致,这样就可以表的字段名和实体类的属性名一一对应上了,这种方式是通过在sql语句中定义别名来解决字段名和属性名的映射关系 ...
- Mybatis中resultMap的作用-解决实体类属性名和数据库字段不一致
解决实体类属性名和数据库字段不一致
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_7 Mybatis中参数的深入-使用实体类的包装对象作为查询条件
pojo对象就是实体类 综合查询-实体类包装起来做查询 新建实体类QueryVo 提供一个User对象属性,并生成getter和setter 测试 修改dao接口中的返回类型为List<User ...
- Mybatis Generator代码自动生成(实体类、dao层、映射文件)
写了一段时间增删改查有点厌烦,自己找了下网上的例子鼓捣了下自动生成. 首先得有一个配置文件: generatorConfig.xml <?xml version="1.0" ...
- [转]【MyBatis】Decimal映射到实体类出现科学计数法问题
原文地址:https://blog.csdn.net/harwey_it/article/details/80269388 问题: Mybatis查询Decimal字段映射到实体类后,出现科学计数法的 ...
- mybatis高级(2)_数据库中的列和实体类不匹配时的两种解决方法_模糊查询_智能标签
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013307.html 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这 ...
随机推荐
- React项目中使用less/scss&全局样式/变量
使用create-react-app脚手架搭建初始化项目 > npm install -g create-react-app > npx create-react-app my-app c ...
- C#中的枚举器
更新记录 本文迁移自Panda666原博客,原发布时间:2021年6月28日. 一.先从可枚举类型讲起 1.1 什么是可枚举类型? 可枚举类型,可以简单的理解为: 有一个类,类中有挺多的数据,用一种统 ...
- 物联网微消息队列MQTT介绍-EMQX集群搭建以及与SpringBoot整合
项目全部代码地址:https://github.com/Tom-shushu/work-study.git (mqtt-emqt 项目) 先看我们最后实现的一个效果 1.手机端向主题 topic111 ...
- DAST 黑盒漏洞扫描器 第五篇:漏洞扫描引擎与服务能力
0X01 前言 转载请标明来源:https://www.cnblogs.com/huim/ 本身需要对外有良好的服务能力,对内流程透明,有日志.问题排查简便. 这里的服务能力指的是系统层面的服务,将扫 ...
- 关闭windows更新、设置自启动、提高开发机性能
做Java开发的朋友都知道,每次开机启动一堆的软件和工具,包括未写完的文档,是非常花时间的,加上一桌面的快捷方式,往往不是那么容易直接找到.windows的自动更新往往在凌晨自动启动,导致很多软件被异 ...
- python是什么?工作前景如何?怎么算有基础?爬数据违法嘛......
随着python越来越火爆并在2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,且置于Java.C和JavaScript之上,于是越来越多的人开始了解python ...
- python删除Android应用及文件夹,就说牛不牛吧
写在前面的一些P话: 碌者劳其心力,懒人使用工具.程序员作为懒人推动社会进步,有目共睹. adb 已提供了开发者可以使用的全部工具,但是重复执行一系列adb命令也令人心烦,所以,如果业务需求固定,直接 ...
- idea 查看 类所有方法的快捷键
idea 查看 类 所有方法的快捷键 Idea:ctrl+F12 Eclipse:Ctrl+O
- REST 表现层状态转化
1.REST是什么? 1) REST:即 Representational State Transfer.(资源)表现层状态转化.是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展 ...
- letsencrypt更换pip源
vim letsencrypt-auto 将DEFAULT_INDEX_BASE = 'https://pypi.python.org'改为DEFAULT_INDEX_BASE = 'http://m ...