Mybatis-Plus之LambdaQueryWrapper,Wrappers.<实体类>lambdaQuery的使用

数据库 其他数据库
我们在使用前要思考一下,这个东西和QueryWrapper有啥区别,为啥要用LambdaQueryWrapper呢?

一、前言

小编今天又来分享干货了,绝对的干净又卫生,大伙请放心食用哈!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("成功");
}
}

五、测试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("实体类::查询字段", "要比较的值"); //小于等于

七、总结

铛铛铛!测试终于结束,恭喜大家学到新东西,本来会的就赶紧关掉页面!小编灰溜溜的跑路了!总之分享小知识给大家还是挺开心的!

责任编辑:姜华 来源: 小王博客基地
相关推荐

2009-09-10 10:09:46

LINQ to SQL

2020-04-22 10:35:57

实体类属性映射

2023-01-17 09:13:08

Mybatis后端框架

2011-06-01 15:45:28

实体类序列化

2023-01-04 08:53:52

JPA实体类注解

2022-04-18 09:54:37

JDK8日期前端

2022-07-15 13:58:46

工具MyBatissql

2022-05-20 12:24:45

分库分表Java依赖

2011-04-26 15:26:38

PostgreSQL

2011-04-26 14:21:50

MySQL

2017-07-20 17:05:04

JavaScriptswagger-decSwagger

2020-11-20 08:36:59

Jpa数据代码

2011-08-16 10:56:01

SQLPLUS学习笔记ECHO

2021-09-27 07:56:41

MyBatis Plu数据库批量插入

2021-01-05 05:36:39

设计Spring Boot填充

2022-09-29 10:06:56

SQLMySQL服务端

2021-06-28 07:09:24

MybatisresultMapJava

2009-09-18 15:22:14

DataContextLINQ to SQL

2009-08-10 18:55:50

创建XSD架构文件

2009-09-09 16:01:21

Linq实体继承使用
点赞
收藏

51CTO技术栈公众号