Mybatis-Plus高级之LambdaQueryWrapper,Wrappers.<实体类>lambdaQuery的使用
2023-02-18 16:42:11 时间
一、前言
小编今天又来分享干货了,绝对的干净又卫生,大伙请放心食用
哈!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("实体类::查询字段", "要比较的值"); //小于等于
七、总结
铛铛铛!!测试终于结束,恭喜大家学到新东西,本来会的就赶紧关掉页面!小编灰溜溜的跑路了!总之分享小知识给大家还是挺开心的!!如果感觉有用,不妨点个关注,我们来日方长哈!!
有缘人才可以看得到的哦!!!
相关文章
- 4种基于像素分割的文本检测算法
- U2Net基于ModelArts Notbook的仿真实验
- 七夕赶上服务器架构升级,女朋友的约会怎么办
- 在openEuler上做开发?这个大赛拿出30万寻找开源的yyds
- 5招教你实现多线程场景下的线程安全!
- 跟我读论文丨ACL2021 NER BERT化隐马尔可夫模型用于多源弱监督命名实体识别
- 大数据集群跨多版本升级、业务0中断,只因背后有TA
- 云小课 | 到底什么是区块链?
- 信创产业已成现象级新风口,快来加入争做“弄潮儿”
- 教你如何使用FusionInsight SqoopShell
- 带你读AI论文:基于Transformer的直线段检测
- 破解三大安防视频痛点,看华为4大硬核视频上云技术
- WeLink的杀手锏和远程办公软件的另一面
- “互联网+”大赛之AI创新应用赛题攻略:大胆脑洞,共绘智慧生活蓝图
- Tensor:Pytorch神经网络界的Numpy
- 你真的懂语音特征吗?
- 带你看论文丨全局信息对于图网络文档解析的影响
- 【“互联网+”大赛华为云赛道】EI命题攻略:华为云EI的能力超丰富,助你实现AI梦想
- 【“互联网+”大赛华为云赛道】IoT命题攻略:仅需四步,轻松实现场景智能化设计
- 快来看,大数据两地三中心的容灾也可以如此省心!