Mybatis Plus條件構(gòu)造器ConditionConstructor用法實(shí)例解析
理解:
原來(lái)叫條件構(gòu)造器,我一直以為都是封裝條件對(duì)象
即SQL的查詢條件,不過(guò)都一樣。
其目的是因?yàn)榈膶?shí)際的需求靈活多變,而我們的SQL的篩選條件也需要跟著變化,
但是有一些固定的字段固定的方式可以保證不變化,那么方法的參數(shù)的確定尤為重要
從單一的一個(gè)ID,一個(gè)String的屬性,到一個(gè)類型的對(duì)象,最后到規(guī)范的接口
就是逐漸把可能的情況不斷的抽象化,更具有泛用意義
Wrapper的常用方法:
eq方法,名稱是equals的縮寫,兩個(gè)參數(shù),一個(gè)是數(shù)據(jù)庫(kù)表字段的名稱,一個(gè)是表字段值
userQueryWrapper.eq('user_id', 9); // WHERE user_id = ?
重載方法首參數(shù)多加了一個(gè)布爾類型,名稱condition,MybatisPlus是希望在這個(gè)條件成立的情況下裝填篩選條件
如果這個(gè)條件是必選的也必將會(huì)調(diào)用的,那么就是使用上面的那種。
boolean condition的意義在于動(dòng)態(tài)SQL,如果給了就執(zhí)行,沒(méi)有就不執(zhí)行
一般在業(yè)務(wù)邏輯層編寫的時(shí)候結(jié)合IF & ELSE應(yīng)地制宜
userQueryWrapper.eq(false,'user_id', 9); // 這個(gè)false需要一個(gè)變量來(lái)靈活操控
不等于:
userQueryWrapper.ne('columnX','valueX'); // columnX != valueX || columnX <> valueX
between方法,即SQL的 WHERExx字段 BETWEEN值1 AND值2
注意,值1一定是小于值2的
userQueryWrapper.between('xxx表字段', 10, 65); // WHERE xx字段 BETWEEN 值1 AND 值2
大于小于、大于等于、小于等于
userQueryWrapper.gt('xx字段', 20); // WHERE columnX > valueX userQueryWrapper.lt('xx字段', 20); // WHERE columnX < valueX userQueryWrapper.ge('xx字段', 20); // WHERE columnX >= valueX userQueryWrapper.le('xx字段', 20); // WHERE columnX <= valueX
按字段排序:
可以是默認(rèn)和N個(gè)字段,默認(rèn)排序就表示ASC順序從小到大
也可以指定排序方式,和自定的字段:
眾多條件需要進(jìn)行連接,無(wú)非就是AND & OR兩種
一般只需要連續(xù)引用就表示這些一連串的條件是AND拼接,其中一個(gè)條件是可選的,就使用or方法處理
// WHERE xx字段 <= 20 AND columnX > valueX OR xxx表字段 BETWEEN 10 AND 65userQueryWrapper.le('xx字段', 20).gt('columnX','valueX').or().between('xxx表字段', 10, 65);
如果我們需要更加明確的表示:則使用And方法進(jìn)行條件嵌套處理:
參考地址:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. MySQL導(dǎo)入sql文件的三種方法小結(jié)2. MySQL數(shù)據(jù)庫(kù)表空間回收的解決3. DB2中的數(shù)據(jù)移動(dòng)(一)4. 簡(jiǎn)單了解mysql InnoDB MyISAM相關(guān)區(qū)別5. 解決Oracle賬戶被鎖定的問(wèn)題6. Sql Server中通過(guò)sql命令獲取cpu占用及產(chǎn)生鎖的sql7. SQLite 性能優(yōu)化實(shí)例分享8. SqlServer常用函數(shù)及時(shí)間處理小結(jié)9. mysql索引原理與用法實(shí)例分析10. MyBatis 實(shí)現(xiàn)批量插入和刪除中雙層循環(huán)的寫法案例
