欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis?plus?where添加括號方式

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

Mybatis plus where添加括號

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后面的條件用括號括起來

今天在使用mybatisplus時需要將and后面的or條件使用括號包起來

? ? @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是沒辦法滿足我需要的數(shù)據(jù)

實際上的我需要執(zhí)行的sql是需要把and后面的or用()包起來作為一個條件來查詢

所以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打印出來就是:

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

這樣就滿足了我把and后面的or作為一個整體

這里需要注意的是:我的mybatisplus版本是3.0.7.1,這個版本中是沒有andNew()的方法,所以需要使用這種方法時查看你的版本是否和我的一樣,還有一點要注意,不要丟棄了語句中的.and()

這里順便補充一下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)

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

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

相關(guān)文章

  • SpringSecurity?表單登錄的實現(xiàn)

    SpringSecurity?表單登錄的實現(xiàn)

    本文主要介紹了SpringSecurity?表單登錄的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • MyBatis批量插入的五種方式小結(jié)(MyBatis以集合方式批量新增)

    MyBatis批量插入的五種方式小結(jié)(MyBatis以集合方式批量新增)

    本文主要介紹了MyBatis批量插入的五種方式小結(jié)(MyBatis以集合方式批量新增),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Centos中安裝jdk案例講解

    Centos中安裝jdk案例講解

    這篇文章主要介紹了Centos中安裝jdk案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Spring AOP實現(xiàn)接口請求記錄到數(shù)據(jù)庫的示例代碼

    Spring AOP實現(xiàn)接口請求記錄到數(shù)據(jù)庫的示例代碼

    這篇文章主要介紹了Spring AOP實現(xiàn)接口請求記錄到數(shù)據(jù)庫,代碼包括引入AOP依賴及創(chuàng)建日志記錄表,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Intellij IDEA如何自定義注釋模板的實現(xiàn)方法

    Intellij IDEA如何自定義注釋模板的實現(xiàn)方法

    這篇文章主要介紹了Intellij IDEA如何自定義注釋模板的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Spring Security十分鐘入門教程

    Spring Security十分鐘入門教程

    這篇文章主要介紹了Spring Security入門教程,Spring Security是一個能夠為基于Spring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架
    2022-09-09
  • Tk.mybatis零sql語句實現(xiàn)動態(tài)sql查詢的方法(4種)

    Tk.mybatis零sql語句實現(xiàn)動態(tài)sql查詢的方法(4種)

    有時候,查詢數(shù)據(jù)需要根據(jù)條件使用動態(tài)查詢,這時候需要使用動態(tài)sql,本文主要介紹了Tk.mybatis零sql語句實現(xiàn)動態(tài)sql查詢的方法,感興趣的可以了解一下
    2021-12-12
  • SpringMVC @RequestBody的使用解析

    SpringMVC @RequestBody的使用解析

    這篇文章主要介紹了SpringMVC @RequestBody的使用解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 簡單談?wù)凾hreadPoolExecutor線程池之submit方法

    簡單談?wù)凾hreadPoolExecutor線程池之submit方法

    下面小編就為大家?guī)硪黄唵握務(wù)凾hreadPoolExecutor線程池之submit方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • java中如何使用MD5進行加密

    java中如何使用MD5進行加密

    這篇文章主要介紹了java實現(xiàn)md5加密示例,在各種應(yīng)用系統(tǒng)的開發(fā)中,經(jīng)常需要存儲用戶信息,很多地方都要存儲用戶密碼,有需要的小伙伴可以參考下。
    2016-11-11

最新評論