ToB企服应用市场:ToB评测及商务社交产业平台

标题: Mybatis-Plus高级之LambdaQueryWrapper,Wrappers.<实体类>lambdaQuery的 [打印本页]

作者: 宁睿    时间: 2022-9-16 17:20
标题: Mybatis-Plus高级之LambdaQueryWrapper,Wrappers.<实体类>lambdaQuery的
一、前言

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

我们在使用前要思考一下,这个东西和QueryWrapper有啥区别,为啥要用LambdaQueryWrapper呢?
别急,小编来告诉一下,lambda是JDK8的新特性,大家都知道很好用!Mybatis-Plus也想到了,于是LambdaQueryWrapper出来了!
LambdaQueryWrapper优点:以前的QueryWrapper比如一个eq("数据库字段名字","值"),我们在表字段设计时,很多都是_拼接的,很容易把数据库字段名输入错误!所以我们使用LambdaQueryWrapper,不需要输入数据库字段名字,输入实体类的对应驼峰命名即可!!
我们开始进入例子演示哈!!
三、引入Maven
  1. <dependency>
  2.     <groupId>com.baomidou</groupId>
  3.     <artifactId>mybatis-plus-boot-starter</artifactId>
  4.     <version>3.5.1</version>
  5. </dependency>
复制代码
四、LambdaQueryWrapper三种写法

为了测试方便,小编直接在controller测试!
  1. @RestController
  2. @RequestMapping("/test")
  3. @Slf4j
  4. @RequiredArgsConstructor
  5. public class TestController {
  6.     private final TestService testService;
  7.     @NonNull
  8.     private TestMapper testMapper;
  9.     @GetMapping("/testLambda")
  10.     public Result testLambda(){
  11.         LambdaQueryWrapper<Test> query = new LambdaQueryWrapper<>();
  12.         query.select(Test::getName).eq(Test::getId,14);
  13.         List<Test> tests1 = testMapper.selectList(query);
  14.         List<Test> tests2 = testMapper.selectList(Wrappers.<Test>lambdaQuery().eq(Test::getId,14));
  15.         List<Test> tests3 = testMapper.selectList(Wrappers.<Test>query().lambda().eq(Test::getId,16));
  16.         System.out.println(tests1);
  17.         System.out.println(tests2);
  18.         System.out.println(tests3);
  19.         return Result.success("成功");
  20.     }
  21. }
复制代码
如果对@RequiredArgsConstructor不了解的可以看一下小编的这篇文章!@RequiredArgsConstructor代替@Autowrired
五、测试SQL执行展示

我们看到sql都是一样的,所以喜欢那种按自己的习惯吧!

六、LambdaQueryWrapper构造器查询
  1. /**
  2.   *附加条件构造器LambdaQueryWrapper常用方法 ---这几个肯定够用了
  3.   */
  4. wrapper.eq("实体类::查询字段", "条件值"); //相当于where条件
  5. wrapper.between("实体类::查询字段", "区间一", "区间二");//相当于范围内使用的between
  6. wrapper.like("实体类::查询字段", "模糊查询的字符"); //模糊查询like
  7. wrapper.groupBy("实体类::查询字段");  //相当于group by分组
  8. wrapper.in("实体类::查询字段", "包括的值,分割"); //相当于in
  9. wrapper.orderByAsc("实体类::查询字段"); //升序
  10. wrapper.orderByDesc("实体类::查询字段");//降序
  11. wrapper.ge("实体类::查询字段", "要比较的值"); //大于等于
  12. wrapper.le("实体类::查询字段", "要比较的值"); //小于等于
复制代码
七、总结

铛铛铛!!测试终于结束,恭喜大家学到新东西,本来会的就赶紧关掉页面!小编灰溜溜的跑路了!总之分享小知识给大家还是挺开心的!!如果感觉有用,不妨点个关注,我们来日方长哈!!
有缘人才可以看得到的哦!!!点击访问!小编自己的网站,里面也是有很多好的文章哦!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4