
一、前言
小編今天又來(lái)分享干貨了,絕對(duì)的干凈又衛(wèi)生,大伙請(qǐng)放心食用哈!Mybatis-Plus我們經(jīng)常使用,但是里面的很多功能,小編開始只是知道一點(diǎn)點(diǎn),做個(gè)增刪改查沒問(wèn)題。小編在新項(xiàng)目中發(fā)現(xiàn),大神們不使用QueryWrapper,而是使用LambdaQueryWrapper,于是小編研究了一下,發(fā)現(xiàn)真香?。。≮s緊馬不停蹄的寫下這篇文章,大家一起進(jìn)步哈!
二、LambdaQueryWrapper和QueryWrapper優(yōu)缺點(diǎn)
我們?cè)谑褂们耙伎家幌?,這個(gè)東西和QueryWrapper有啥區(qū)別,為啥要用LambdaQueryWrapper呢?
別急,小編來(lái)告訴一下,lambda是JDK8的新特性,大家都知道很好用!Mybatis-Plus也想到了,于是LambdaQueryWrapper出來(lái)了!
LambdaQueryWrapper優(yōu)點(diǎn):以前的QueryWrapper比如一個(gè)eq("數(shù)據(jù)庫(kù)字段名字","值")?,我們?cè)诒碜侄卧O(shè)計(jì)時(shí),很多都是_拼接的,很容易把數(shù)據(jù)庫(kù)字段名輸入錯(cuò)誤!所以我們使用LambdaQueryWrapper,不需要輸入數(shù)據(jù)庫(kù)字段名字,輸入實(shí)體類的對(duì)應(yīng)駝峰命名即可!
我們開始進(jìn)入例子演示哈!
三、引入Maven
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
四、LambdaQueryWrapper三種寫法
為了測(cè)試方便,小編直接在controller測(cè)試!
@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("成功");
}
}
五、測(cè)試SQL執(zhí)行展示
我們看到sql都是一樣的,所以喜歡那種按自己的習(xí)慣吧!

六、LambdaQueryWrapper構(gòu)造器查詢
/**
*附加條件構(gòu)造器LambdaQueryWrapper常用方法 ---這幾個(gè)肯定夠用了
*/
wrapper.eq("實(shí)體類::查詢字段", "條件值"); //相當(dāng)于where條件
wrapper.between("實(shí)體類::查詢字段", "區(qū)間一", "區(qū)間二");//相當(dāng)于范圍內(nèi)使用的between
wrapper.like("實(shí)體類::查詢字段", "模糊查詢的字符"); //模糊查詢like
wrapper.groupBy("實(shí)體類::查詢字段"); //相當(dāng)于group by分組
wrapper.in("實(shí)體類::查詢字段", "包括的值,分割"); //相當(dāng)于in
wrapper.orderByAsc("實(shí)體類::查詢字段"); //升序
wrapper.orderByDesc("實(shí)體類::查詢字段");//降序
wrapper.ge("實(shí)體類::查詢字段", "要比較的值"); //大于等于
wrapper.le("實(shí)體類::查詢字段", "要比較的值"); //小于等于
七、總結(jié)
鐺鐺鐺!測(cè)試終于結(jié)束,恭喜大家學(xué)到新東西,本來(lái)會(huì)的就趕緊關(guān)掉頁(yè)面!小編灰溜溜的跑路了!總之分享小知識(shí)給大家還是挺開心的!