前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >还在使用QueryWrapper?不妨试试Mybatis-Plus高级之LambdaQueryWrapper,Wrappers.<实体类>lambdaQuery的使用

还在使用QueryWrapper?不妨试试Mybatis-Plus高级之LambdaQueryWrapper,Wrappers.<实体类>lambdaQuery的使用

作者头像
掉发的小王
发布2022-07-11 16:04:02
4.2K0
发布2022-07-11 16:04:02
举报
文章被收录于专栏:小王知识分享

一、前言

小编今天又来分享干货了,绝对的干净又卫生,大伙请放心食用哈!Mybatis-Plus我们经常使用,但是里面的很多功能,小编开始只是知道一点点,做个增删改查没问题。小编在新项目中发现,大神们不使用QueryWrapper,而是使用LambdaQueryWrapper,于是小编研究了一下,发现真香啊!!赶紧马不停蹄的写下这篇文章,大家一起进步哈!

二、LambdaQueryWrapper和QueryWrapper优缺点

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

别急,小编来告诉一下,lambda是JDK8的新特性,大家都知道很好用!Mybatis-Plus也想到了,于是LambdaQueryWrapper出来了!

LambdaQueryWrapper优点:以前的QueryWrapper比如一个eq("数据库字段名字","值"),我们在表字段设计时,很多都是_拼接的,很容易把==数据库字段名输入错误==!所以我们使用LambdaQueryWrapper,不需要输入数据库字段名字,输入实体类的对应驼峰命名即可!!

我们开始进入例子演示哈!!

三、引入Maven

代码语言:javascript
复制
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>

四、LambdaQueryWrapper三种写法

为了测试方便,小编直接在controller测试!

代码语言:javascript
复制
@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构造器查询

代码语言:javascript
复制
/**
  *附加条件构造器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("实体类::查询字段", "要比较的值"); //小于等于

七、总结

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


Q.E.D.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、LambdaQueryWrapper和QueryWrapper优缺点
  • 三、引入Maven
  • 四、LambdaQueryWrapper三种写法
  • 五、测试SQL执行展示
  • 六、LambdaQueryWrapper构造器查询
  • 七、总结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档