亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MyBatis Example And與Or混合使用的實(shí)例

 更新時(shí)間:2021年12月23日 14:37:35   作者:看!蝸牛在漂移  
這篇文章主要介紹了MyBatis Example And與Or混合使用的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MyBatis Example And與Or混合使用

(條件1 and 條件2) or ( 條件3 and 條件4)

      MemberExample example = new MemberExample();
      MemberExample.Criteria c1 = example.createCriteria();
                          c1.andOne(A).andTwo(B);
      
      MemberExample.Criteria c2 = example.createCriteria();
                          c2.andThree(C).andFour(D); 
      example.or(c2);  

條件1 and (條件2 or 條件3)

思路 : 分拆 : A and ( B or C ) ==> ( A and B ) or ( A and C )

   MemberExample example = new MemberExample();
      MemberExample.Criteria c1 = example.createCriteria();
                          c1.andOne(A).andTwo(B);
      
      MemberExample.Criteria c2 = example.createCriteria();
                          c2.andOne(A).andThree(C); 
      example.or(c2);   

MyBatis Example 處理And、Or關(guān)系方法

1.( xx and xx) or ( xx and xx)

實(shí)例代碼:

BaUserExample baUserExample = new BaUserExample(); 
Criteria criteria1 = baUserExample.createCriteria();
criteria1.andOrgIdEqualTo("1");
criteria1.andDeptIdEqualTo("1");
   
Criteria criteria2 = baUserExample.createCriteria();
criteria2.andUserNameEqualTo("name");
criteria2.andEmailLike("%test@%");
   
baUserExample.or(criteria2); 
userMapper.countByExample(baUserExample);

執(zhí)行的sql語(yǔ)句:

==>  Preparing: select count(*) from ba_user WHERE ( org_id = ? and dept_id = ? ) or( user_name = ? and email like ? )

2.xx and ( xx or xx)

暫時(shí)沒找到直接的sql語(yǔ)句構(gòu)造方法,但是經(jīng)過轉(zhuǎn)換還是可以實(shí)現(xiàn)的

根據(jù)邏輯表達(dá)式可以知道 a and ( b or c ) = ( a and b) or ( a and c )

所以就轉(zhuǎn)變成第一種方法

舉個(gè)例子,假如想要實(shí)現(xiàn)

select count(*) from ba_user WHERE userName like ? and ( dept_id is null or dept_id <>? )

可以轉(zhuǎn)化為

select count(*) from ba_user WHERE (userName like ? and  dept_id is null ) or ( userName like ? and  dept_id <>? )

實(shí)例代碼:

BaUserExample baUserExample = new BaUserExample(); 
Criteria criteria1 = baUserExample.createCriteria();
criteria1.andUserNameLike("%name%");
criteria1.andDeptIdIsNull();
   
Criteria criteria2 = baUserExample.createCriteria();
criteria2.andUserNameLike("%name%");
criteria2.andDeptIdNotEqualTo("1");
   
baUserExample.or(criteria2); 
userMapper.countByExample(baUserExample);

執(zhí)行的sql語(yǔ)句:

==>  Preparing: select count(*) from ba_user WHERE ( user_name like ? and dept_id is null ) or( user_name like ? and dept_id <> ? ) 

這算是一種取巧的方法吧,對(duì)于這樣的問題可以自己編寫mapper.xml文件,或者在代碼里面過濾,還有一種思路就是修改Criteria的代碼實(shí)現(xiàn)and和or功能調(diào)換(還沒嘗試過)。

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

相關(guān)文章

  • 詳解Java引用類型的參數(shù)也是值傳遞

    詳解Java引用類型的參數(shù)也是值傳遞

    這篇文章主要介紹了Java引用類型的參數(shù)也是值傳遞,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • shiro攔截認(rèn)證的全過程記錄

    shiro攔截認(rèn)證的全過程記錄

    Apache?Shiro是一個(gè)強(qiáng)大且易用的Java安全框架,執(zhí)行身份驗(yàn)證、授權(quán)、密碼和會(huì)話管理,下面這篇文章主要給大家介紹了關(guān)于shiro攔截認(rèn)證的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • SpringBoot 普通類調(diào)用Bean對(duì)象的一種方式推薦

    SpringBoot 普通類調(diào)用Bean對(duì)象的一種方式推薦

    這篇文章主要介紹了SpringBoot 普通類調(diào)用Bean對(duì)象的一種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java實(shí)現(xiàn)文件保存到本地的方法

    java實(shí)現(xiàn)文件保存到本地的方法

    本篇文章主要介紹了java實(shí)現(xiàn)文件保存到本地的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-02-02
  • springboot圖片驗(yàn)證碼功能模塊

    springboot圖片驗(yàn)證碼功能模塊

    用戶登錄幾乎是一個(gè)線上系統(tǒng)必不可少且使用相對(duì)比較頻繁的一個(gè)模塊,為了防止惡意暴力嘗試,防止洪水攻擊、防止腳本自動(dòng)提交等,驗(yàn)證碼是一個(gè)較為便捷且行之有效的預(yù)防手段,這篇文章主要介紹了springboot圖片驗(yàn)證碼功能模塊,需要的朋友可以參考下
    2022-04-04
  • springboot開發(fā)擴(kuò)展springmvc實(shí)現(xiàn)解析

    springboot開發(fā)擴(kuò)展springmvc實(shí)現(xiàn)解析

    這篇文章主要介紹了springboot開發(fā)擴(kuò)展springmvc實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 詳解Java反射創(chuàng)建對(duì)象

    詳解Java反射創(chuàng)建對(duì)象

    今天帶大家學(xué)習(xí)Java的基礎(chǔ)知識(shí),文中對(duì)Java反射創(chuàng)建對(duì)象作了非常詳細(xì)的介紹及代碼示例,對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • 深入淺出的講解Java關(guān)鍵字final的作用

    深入淺出的講解Java關(guān)鍵字final的作用

    final是Java中非常常見的一個(gè)關(guān)鍵字,可以說(shuō)每天都在使用它,雖然常見,但卻也不見得都那么顯而易見,今天就來(lái)研究一下final,以加深對(duì)它的理解和更合理的運(yùn)用,需要的朋友可以參考下
    2023-06-06
  • 通過jstack分析解決進(jìn)程死鎖問題實(shí)例代碼

    通過jstack分析解決進(jìn)程死鎖問題實(shí)例代碼

    這篇文章主要介紹了通過jstack分析解決進(jìn)程死鎖問題實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • java使用httpclient 發(fā)送請(qǐng)求的示例

    java使用httpclient 發(fā)送請(qǐng)求的示例

    HttpClient 是Apache Jakarta Common 下的子項(xiàng)目,可以用來(lái)提供高效的、最新的、功能豐富的支持 HTTP 協(xié)議的客戶端編程工具包,并且它支持 HTTP 協(xié)議最新的版本和建議,這篇文章主要介紹了java使用httpclient 發(fā)送請(qǐng)求的示例,需要的朋友可以參考下
    2023-10-10

最新評(píng)論