Mybatis Plus條件構(gòu)造器ConditionConstructor用法實(shí)例解析
理解:
原來叫條件構(gòu)造器,我一直以為都是封裝條件對象
即SQL的查詢條件,不過都一樣。
其目的是因?yàn)榈膶?shí)際的需求靈活多變,而我們的SQL的篩選條件也需要跟著變化,
但是有一些固定的字段固定的方式可以保證不變化,那么方法的參數(shù)的確定尤為重要
從單一的一個(gè)ID,一個(gè)String的屬性,到一個(gè)類型的對象,最后到規(guī)范的接口
就是逐漸把可能的情況不斷的抽象化,更具有泛用意義
Wrapper的常用方法:
eq方法,名稱是equals的縮寫,兩個(gè)參數(shù),一個(gè)是數(shù)據(jù)庫表字段的名稱,一個(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í)行,沒有就不執(zhí)行
一般在業(yè)務(wù)邏輯層編寫的時(shí)候結(jié)合IF & ELSE應(yīng)地制宜
userQueryWrapper.eq(false,"user_id", 9); // 這個(gè)false需要一個(gè)變量來靈活操控
不等于:
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)行連接,無非就是AND & OR兩種
一般只需要連續(xù)引用就表示這些一連串的條件是AND拼接,其中一個(gè)條件是可選的,就使用or方法處理
// WHERE xx字段 <= 20 AND columnX > valueX OR xxx表字段 BETWEEN 10 AND 65 userQueryWrapper.le("xx字段", 20).gt("columnX","valueX").or().between("xxx表字段", 10, 65);
如果我們需要更加明確的表示:則使用And方法進(jìn)行條件嵌套處理:
參考地址:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot下mybatis-plus開啟打印sql日志的配置指南
這篇文章主要給大家介紹了關(guān)于springboot下mybatis-plus開啟打印sql日志的配置指南的相關(guān)資料,還介紹了關(guān)閉打印的方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03使用注解@Validated和BindingResult對入?yún)⑦M(jìn)行非空校驗(yàn)方式
這篇文章主要介紹了使用注解@Validated和BindingResult對入?yún)⑦M(jìn)行非空校驗(yàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10JavaSwing基礎(chǔ)之Layout布局相關(guān)知識(shí)詳解
上次我們說到View的Mearsure流程,今天接著說說layout. 關(guān)于layout,很多朋友知道它是負(fù)責(zé)布局的,那么具體是怎么布局的?viewGroup和view的layout方法又有什么不同?一起來看看吧,需要的朋友可以參考下2021-05-05IDEA將Maven項(xiàng)目中指定文件夾下的xml等文件編譯進(jìn)classes的方法
這篇文章主要介紹了IDEA將Maven項(xiàng)目中指定文件夾下的xml等文件編譯進(jìn)classes的方法,幫助大家更好的利用IDEA進(jìn)行Java的開發(fā)學(xué)習(xí),感興趣的朋友可以了解下2021-01-01Java并發(fā)編程之關(guān)鍵字volatile的深入解析
提高java的并發(fā)編程,就不得不提volatile關(guān)鍵字,不管是在面試還是實(shí)際開發(fā)中volatile都是一個(gè)應(yīng)該掌握的技能,這篇文章主要給大家介紹了關(guān)于Java并發(fā)編程之關(guān)鍵字volatile的相關(guān)資料,需要的朋友可以參考下2021-09-09spring中的BeanFactory與FactoryBean的講解
今天小編就為大家分享一篇關(guān)于spring中的BeanFactory與FactoryBean的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01IDEA中的yml文件與properties互相轉(zhuǎn)換
這篇文章主要介紹了IDEA中的yml文件與properties互相轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10