mybatis處理and、or關係的方法
1.( xx and xx) or ( xx and xx)
例項程式碼:
- BaUserExample baUserExample = new BaUserExample();
- Criteria criteria1 = baUserExample.createCriteria();
- criteria1.andOrgIdEqualTo("1");
- criteria1.andDeptIdEqualTo("1");
- Criteria criteria2 = baUserExample.createCriteria();
-
criteria2.andUserNameEqualTo("name"
- criteria2.andEmailLike("%[email protected]%");
- baUserExample.or(criteria2);
- userMapper.countByExample(baUserExample);
執行的sql語句:
- ==> Preparing: select count(*) from ba_user WHERE ( org_id = ? and dept_id = ? ) or( user_name = ? and email like ? )
2.xx and ( xx or xx)
暫時沒找到直接的sql語句構造方法,但是經過轉換還是可以實現的
根據邏輯表示式可以知道 a and ( b or c ) = ( a and b) or ( a and c )
所以就轉變成第一種方法
舉個例子,加入想要實現 select count(*) from ba_user WHERE userName like ? and ( dept_id is null or dept_id <>? )
可以轉化為select count(*) from ba_user WHERE (userName like ? and dept_id is null ) or ( userName like ? and dept_id <>? )
例項程式碼:
- 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);
執行的sql語句:
- ==> Preparing: select count(*) from ba_user WHERE ( user_name like ? and dept_id is null ) or( user_name like ? and dept_id <> ? )
這算是一種取巧的方法吧,對於這樣的問題可以自己編寫mapper.xml檔案,或者在程式碼裡面過濾,還有一種思路就是修改Criteria的程式碼實現and和or功能調換(還沒嘗試過)。
相關推薦
mybatis處理and、or關係的方法
1.( xx and xx) or ( xx and xx) 例項程式碼: BaUserExample baUserExample = new BaUserExample(); Criteria criteria1 = baUserExample.crea
mybatis example處理and、or關係的方法(轉載wang_song_yan)作者不是我,我拿來備忘,謝謝原作者
mybatis example處理and、or關係的方法 2015年10月12日 23:02:43 wang_song_yan 閱讀數:28693 標籤: javaweb mybatis criteria sql andor 更多 個人分類: JavaWeb 1.( xx and x
mybatis處理集合、循環、數組和in查詢等語句的使用
round style 數組 cti abstract 進行 每一個 過濾 註入 在Mybatis的xml配置中使用集合,主要是用到了foreach動態語句。 foreach的參數:foreach元素的屬性主要有 item,index,collection,open,se
學 Win32 匯編[22] - 邏輯運算指令: AND、OR、XOR、NOT、TEST
xor 原來 .lib 標誌位 cal loop win text model AND: 邏輯與 ;該指令會置 CF=OF=0; 其結果影響 SF、ZF、PF ;指令格式: AND r/m, r/m/i ; Test22_1.asm - 使用 AND 運算將一個數的第
07 數據過濾 - and、or、not、in
end sql 執行 exist 優先 最大 邏輯 rom products 組合where子句 可以使用邏輯操作符(AND、OR)組合where子句 select prod_id, prod_price, prod_name from products where
Python中運算符not、and、or
true 運算符 nbsp pytho false 情況下 color tro 布爾 優先級1. and 與 2. or 或 3. not 非運算要記住:數字中非零為真零為假;True 為真 False 為假。or :與and相反,任意一個真即為真,同假才為假(因為要挨個查
MyBatis——一對多、一對一關係,collection、association
實體類兩個: user類: package com.pojo; /** *使用者 */ public class User{ private int userId;//使用者ID private String username;//使用者名稱 private String p
Excel函式公式:IF函式和AND、OR函式的組合多條件判斷技巧
經常使用Excel函式的小夥伴們都知道,在Excel中使用頻率最高的還是那些比較簡單的函式,其中IF函式就是高頻率函式之一,那麼,能不能用IF函式來進行多條件運算呢? 一、IF+AND:同時滿足多個條件 目的:將“上海”地區的“男”通知標識為“Y”。 方法: 在目標單元格中輸入公式:=IF(AND(D
Excel函數公式:IF函數和AND、OR函數的組合多條件判斷技巧
ofo 輸入 公式 條件判斷 excel 圖片 比較 and 標準 經常使用Excel函數的小夥伴們都知道,在Excel中使用頻率最高的還是那些比較簡單的函數,其中IF函數就是高頻率函數之一,那麽,能不能用IF函數來進行多條件運算呢? 一、IF+AND:同時滿足多個條件 目
python中and、or的妙用
我們大家都知道and是且的意思,or是或的意思。那麼今天我給大家看看and與or還有這樣的一面,關於not我就不做闡述了,因為not非常簡單,當然在實際工作中也常常使用到,也是非常重要的,not True返回False,not False返回True 從上圖中我們可以得知,當兩個字元通過o
python中 and、or和 &|
and: 表示式a and表示式 b: 表示式a 如果是真,那麼就返回表示式 b 表示式a 如果為假,那麼就返回表示式 a or: 表示式 a or 表示式 b: 表示式 a如果為真,那麼就返回表示式 a 表示式 a如果為假,那麼就返回表示式 b &:標示與運算 1&
【MongoDB】-Java實現對mongodb的And、Or、In操作
1)And(同時滿足多個條件時用And) public void testAnd(){ DBObject queryCondition = new BasicDBObject();
mongo java中and、or多條件查詢
//and、or多條件聯合查詢 //age條件(and條件) BasicDBList condList = new BasicDBList(); BasicDBObject cond = new BasicD
Java實現對MongoDB的AND、OR和IN操作
在MongoDB的官方文件中關於Java操作的介紹,只給出了很簡單的幾個例子。這些例子雖然可以滿足一定的需求,但是還並不是太完全。下面是我根據網頁中的提示寫的幾個例子。 1
資料庫中AND、OR、IN、NOT、BETWEEN、NULL操作符
1、AND和OR操作符 任何時候使用具有AND和OR操作符的WHERE子句,都應該使用圓括號明確地分組操作符。不要過分依賴預設計算次序,即使它確實是你想要的東西也是如此。使用圓括號沒有什麼壞處,它能消除歧義。如上因為AND的優先順序更高,如果不加圓括號則會產生歧義。因為圓括號具
Elasticsearch: 布林(bool)過濾器--AND、OR、NOT查詢、設定多個查詢欄位
概念 bool (布林)過濾器。 這是個 複合過濾器(compound filter) ,它可以接受多個其他過濾器作為引數,並將這些過濾器結合成各式各樣的布林(邏輯)組合。 格式 一個 bool 過濾器由三部分組成: { "bool" : {
mybatis處理集合、迴圈、陣列和in等語句的使用
在mybatis 批量執行sql時,報錯 java.util.list can't find. 原因:collection 屬性定義錯誤。 List a=ArrayList.asList(str); sql 遍歷資料a, a為一個list,所以 collection 屬性要定義成 list
C++對and、or等運算子的支援
// test.c // gcc test.c --- compile error #include <stdio.h> int main() { int a = (0) or (0); printf("%d", a); return a; } 上
python中and、or、not、三元運算
在python中邏輯運算子有and、or、not,分別表示與、或、非。這裡對他們進行簡單的解釋。 1.and是與的意思。 (1)當前後兩邊都為True,返回後一個結果 In [1]: True and “a” Out[1]: ‘a’ In [2]: “a” an
DOS命令 的條件判斷(與或非:and、or 、not)
DOS 命令實在是太弱,太難用了,基本的邏輯判斷寫起來都很費勁。一般的與或非如何解決呢? 1、非 這個有現成的,條件判斷前加not,例如: C:\Users\HW>if 1==1 echo Ok Ok C:\Users\HW>if not 1==1 echo