最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis?plus?where添加括號(hào)方式

 更新時(shí)間:2022年01月12日 09:52:48   作者:微風(fēng)夏至  
這篇文章主要介紹了Mybatis?plus?where添加括號(hào)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Mybatis plus where添加括號(hào)

List<String> list = xxxx;
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.and(wrapper -> {
?? ??? ??? ?for(String bm : list) {
?? ??? ??? ??? ?wrapper.like("xxxxx", bm).or();
?? ??? ??? ?}
?? ??? ??? ?return wrapper;
?? ??? ?});
queryWrapper.like("xx", "xxx");

打印的效果大概如下:

select * from table_name where (colA like '%xx%' or colA like '%xx%') and colB like '%xx%'

where或and后面的條件用括號(hào)括起來(lái)

今天在使用mybatisplus時(shí)需要將and后面的or條件使用括號(hào)包起來(lái)

? ? @ApiOperation(value = "查看粉絲列表", notes = "查看粉絲列表")
? ? @PostMapping("/fansList")
? ? public ResultVO<ResultListVO<LitemallBusiness>> fansList(@RequestParam(value = "bid") Integer bid,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?@RequestParam(value = "nickName", required = false) String nickName) {
? ? ? ?try {
? ? ? ? ? ? QueryWrapper<LitemallBusiness> queryWrapperw = new QueryWrapper<LitemallBusiness>();
? ? ? ? ? ? queryWrapperw.eq("pid", bid).or().eq("pid2",bid);
? ? ? ? ? ? if (nickName != null && !nickName.equals("")) {
? ? ? ? ? ? ? ? queryWrapperw.like("nick_name", nickName);
? ? ? ? ? ? }
? ? ? ? ? ? queryWrapperw.eq("deleted", false);
? ? ? ? ? ? List<LitemallBusiness> litemall_businessList = businessService.list(queryWrapperw);
? ? ? ? ? ? return ResponseUtil.okList(litemall_businessList);
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? return ResponseUtil.serious();
? ? ? ? }
? ? }

打印輸出的sql

select * form litemall_business where deleted=0 and pid=1 or pid2=1

此條sql是沒(méi)辦法滿足我需要的數(shù)據(jù)

實(shí)際上的我需要執(zhí)行的sql是需要把a(bǔ)nd后面的or用()包起來(lái)作為一個(gè)條件來(lái)查詢

所以mybatisplus的原生查詢方法需要修改為:

@ApiOperation(value = "查看粉絲列表", notes = "查看粉絲列表")
? ? @PostMapping("/fansList")
? ? public ResultVO<ResultListVO<LitemallBusiness>> fansList(@RequestParam(value = "bid") Integer bid,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?@RequestParam(value = "nickName", required = false) String nickName) {
? ? ? ?try {
? ? ? ? ? ? QueryWrapper<LitemallBusiness> queryWrapperw = new QueryWrapper<LitemallBusiness>();
? ? ? ? ? ? queryWrapperw.and(wrapper -> wrapper.eq("pid", bid).or().eq("pid2", bid));
? // ? ? ? ? ? ?queryWrapperw.eq("pid", bid).or().eq("pid2",bid);
? ? ? ? ? ? if (nickName != null && !nickName.equals("")) {
? ? ? ? ? ? ? ? queryWrapperw.like("nick_name", nickName);
? ? ? ? ? ? }
? ? ? ? ? ? queryWrapperw.eq("deleted", false);
? ? ? ? ? ? List<LitemallBusiness> litemall_businessList = businessService.list(queryWrapperw);
? ? ? ? ? ? return ResponseUtil.okList(litemall_businessList);
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? return ResponseUtil.serious();
? ? ? ? }
? ? }

這樣sql打印出來(lái)就是:

select * form litemall_business where deleted=0 and (pid=1 or pid2=1)

這樣就滿足了我把a(bǔ)nd后面的or作為一個(gè)整體

這里需要注意的是:我的mybatisplus版本是3.0.7.1,這個(gè)版本中是沒(méi)有andNew()的方法,所以需要使用這種方法時(shí)查看你的版本是否和我的一樣,還有一點(diǎn)要注意,不要丟棄了語(yǔ)句中的.and()

這里順便補(bǔ)充一下andNew()的寫法

//mybatisplus版本3.0.7.1 jdk1.8?
queryWrapperw.and(wrapper -> wrapper.eq("pid", bid).or().eq("pid2", bid));
//執(zhí)行sql
select * form litemall_business where deleted=0 and (pid=1 or pid2=1)

//mybatisplus版本低于3.0.7.1
queryWrapperw.andNew().eq("pid", bid).or().eq("pid2", bid);
//執(zhí)行sql
select * form litemall_business where deleted=0 and (pid=1 or pid2=1)

其實(shí)最終執(zhí)行的sql是一樣的

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中的volatile關(guān)鍵字原理深入解析

    Java中的volatile關(guān)鍵字原理深入解析

    這篇文章主要介紹了Java中的volatile關(guān)鍵字原理深入解析,volatile是Java 編程語(yǔ)言允許線程訪問(wèn)共享變量,為了確保共享變量能被準(zhǔn)確和一致地更新,線程應(yīng)該確保通過(guò)排他鎖單獨(dú)獲得這個(gè)變量,需要的朋友可以參考下
    2023-12-12
  • smslib發(fā)短信實(shí)例代碼(電腦發(fā)短信)

    smslib發(fā)短信實(shí)例代碼(電腦發(fā)短信)

    smslib發(fā)短信實(shí)例,大家可以參考使用開(kāi)發(fā)自己的程序
    2013-12-12
  • VerifyCodeServlet(一次性驗(yàn)證碼)

    VerifyCodeServlet(一次性驗(yàn)證碼)

    這篇文章主要介紹了VerifyCodeServlet一次性驗(yàn)證碼的使用方法
    2017-05-05
  • java新人基礎(chǔ)入門之遞歸調(diào)用

    java新人基礎(chǔ)入門之遞歸調(diào)用

    這篇文章主要給大家介紹了關(guān)于java新人基礎(chǔ)入門之遞歸調(diào)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Java微信分享接口開(kāi)發(fā)詳解

    Java微信分享接口開(kāi)發(fā)詳解

    這篇文章主要為大家詳細(xì)介紹了Java微信分享接口開(kāi)發(fā)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • SpringData JPA中@OneToMany和@ManyToOne的用法詳解

    SpringData JPA中@OneToMany和@ManyToOne的用法詳解

    這篇文章主要介紹了SpringData JPA中@OneToMany和@ManyToOne的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 基于Java ORM框架的使用詳解

    基于Java ORM框架的使用詳解

    本篇文章是對(duì)Java中ORM框架的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Java并發(fā)編程之Volatile變量詳解分析

    Java并發(fā)編程之Volatile變量詳解分析

    Volatile關(guān)鍵字是Java提供的一種輕量級(jí)的同步機(jī)制,本篇文章深入淺出的講講Java并發(fā)編程的Volatile,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下
    2021-10-10
  • SpringBoot?實(shí)現(xiàn)微信推送模板的示例代碼

    SpringBoot?實(shí)現(xiàn)微信推送模板的示例代碼

    這篇文章主要介紹了SpringBoot?實(shí)現(xiàn)微信推送模板,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • json-lib將json格式的字符串,轉(zhuǎn)化為java對(duì)象的實(shí)例

    json-lib將json格式的字符串,轉(zhuǎn)化為java對(duì)象的實(shí)例

    下面小編就為大家?guī)?lái)一篇json-lib將json格式的字符串,轉(zhuǎn)化為java對(duì)象的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03

最新評(píng)論

依兰县| 沽源县| 普定县| 林周县| 崇明县| 嘉祥县| 岫岩| 宜章县| 招远市| 茌平县| 西林县| 曲麻莱县| 青海省| 米林县| 皋兰县| 阿克苏市| 沙河市| 平远县| 会宁县| 林口县| 武威市| 岱山县| 松滋市| 同仁县| 德兴市| 金溪县| 清徐县| 大庆市| 当阳市| 西林县| 英吉沙县| 崇明县| 西昌市| 博客| 通化县| 招远市| 阜宁县| 广东省| 白朗县| 淮北市| 观塘区|