一、前言

小编今天又来分享干货了,绝对的干净又卫生,大伙请放心食用哈!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的使用的更多相关文章

  1. mybatis学习笔记(四)-- 为实体类定义别名两种方法(基于xml映射)

    下面示例在mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现 Demo的基础上进行优化 以新增一个用户为例子,原UserMapper.xml配置如下: < ...

  2. Mybatis动态构建Sql(无实体类)

    MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. 例如,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询 ...

  3. MyBatis中解决字段名与实体类属性名不相同的冲突

    一: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致,这样就可以表的字段名和实体类的属性名一一对应上了,这种方式是通过在sql语句中定义别名来解决字段名和属性名的映射关系 ...

  4. Mybatis中resultMap的作用-解决实体类属性名和数据库字段不一致

    解决实体类属性名和数据库字段不一致

  5. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_7 Mybatis中参数的深入-使用实体类的包装对象作为查询条件

    pojo对象就是实体类 综合查询-实体类包装起来做查询 新建实体类QueryVo 提供一个User对象属性,并生成getter和setter 测试 修改dao接口中的返回类型为List<User ...

  6. Mybatis Generator代码自动生成(实体类、dao层、映射文件)

    写了一段时间增删改查有点厌烦,自己找了下网上的例子鼓捣了下自动生成. 首先得有一个配置文件: generatorConfig.xml <?xml version="1.0" ...

  7. [转]【MyBatis】Decimal映射到实体类出现科学计数法问题

    原文地址:https://blog.csdn.net/harwey_it/article/details/80269388 问题: Mybatis查询Decimal字段映射到实体类后,出现科学计数法的 ...

  8. mybatis高级(2)_数据库中的列和实体类不匹配时的两种解决方法_模糊查询_智能标签

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

  9. MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013307.html 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这 ...

随机推荐

  1. 超级重磅!Apache Hudi多模索引对查询优化高达30倍

    与许多其他事务数据系统一样,索引一直是 Apache Hudi 不可或缺的一部分,并且与普通表格式抽象不同. 在这篇博客中,我们讨论了我们如何重新构想索引并在 Apache Hudi 0.11.0 版 ...

  2. mac mini 装UBUNTU后没有WIFI解决办法

    1.在终端中运行如下命令,重新安装b43相关的全部驱动和firmware: 复制代码 代码如下: sudo apt-get install bcmwl-kernel-source #Broadcom ...

  3. CMU15445 之 Project#0 - C++ Primer 详解

    前言 这个实验主要用来测试大家对现代 C++ 的掌握程度,实验要求如下: 简单翻译一下上述要求,就是我们需要实现定义在 src/include/primer/p0_starter.h 中的三个类 Ma ...

  4. jQuery获取市、区县、乡镇、村

    效果图: 首先根据自己方法把地区树状结构json字符串拿到 html下拉框和js写法如下: <select class="form-control" style=" ...

  5. centos系统和Ubuntu系统命令区别以及常见操作

    目录 一.前言 二.系统环境 三.命令区别 3.1 使用习惯和命令区别 3.2 服务管理的区别 3.3 软件包信息区别 四.Ubuntu系统常见操作 4.1 Ubuntu系统apt和apt-get的区 ...

  6. GameFramework食用指南

    1.框架简介 GF框架分两部分,GameFramework(GF)和UnityGameFramework(UGF): 通过接口的形式对Unity引擎进行了解耦: GF独立于Unity,具体业务逻辑实现 ...

  7. NC25025 [USACO 2007 Nov G]Sunscreen

    NC25025 [USACO 2007 Nov G]Sunscreen 题目 题目描述 To avoid unsightly burns while tanning, each of the \(C\ ...

  8. 全国土壤阳离子交换量CEC空间分布数据

    数据下载链接:百度云下载链接​ 土壤阳离子交换量,简称CEC,是指土壤胶体所能吸附各种阳离子的总量.土壤阳离子交换量 cation exchange capacity 即CEC 是指土壤胶体所能吸附各 ...

  9. npm相关知识整理

    语义化版本 major: 重大变化,不兼容老版本 minor: 新增功能,兼容老版本 patch: 修复bug,兼容老版本 依赖版本号 * 匹配最新版本的依赖 ^ 匹配最近的大版本依赖,比如^1.2. ...

  10. nexus 配置文件到本地maven本地仓库 失败

    Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on p ...