MybatisPlus EntityWrapper如何自定義SQL
EntityWrapper自定義SQL
在mybatis plus中根據(jù)條件構(gòu)造器,構(gòu)建SQL查詢是很方便的,使用條件構(gòu)造器可以替代我們寫SQL。下面我們看幾個(gè)例子。
第一種
使用T selectOne(Wrapper<T> wrapper);我們只需要傳遞入我們創(chuàng)建一個(gè)EntityWrapper()并將條件拼接好就可以。
例如new EntityWrapper().eq("id","1")就是查詢id等于1的這條數(shù)據(jù)。這里不僅僅支持eq(),還有l(wèi)ike,not like ,group by等,差不多在SQL中需要的這里都有。
第二種
在單表查詢的時(shí)候我們需要自定義列的時(shí)候則使用setSqlSelect方法,具體如下:
/**此格式的意思為requireParam傳參了才創(chuàng)建where條件,請按照此格式撰寫代碼 *Object為你的單表實(shí)體類 *requireParam為入?yún)?shí)體類 *EntityWrapper<Object> ew = new EntityWrapper<Object>(requireParam);是為了讓構(gòu)造where條件 *我在前面給requireParam的state屬性設(shè)置了值為1,所以這里會(huì)自動(dòng)拼接上where條件,如果不需要的話則可不傳requireParam * * **/ ? ? ? ? ? ? EntityWrapper<Object> ew = new EntityWrapper<Object>(requireParam); ? ? ? ? ? ? /**設(shè)置需要查詢的列名**/ ? ? ? ? ? ? ew.setSqlSelect("id,resource_id,user_id,username,content,createtime,parent_id," + ? ? ? ? ? ? ? ? ? ? " path,type,like_count") ? ? ? ? ? ? ? ? ? ? /**排序方式**/ ? ? ? ? ? ? ? ? ? ? .orderBy(false,"path",false);
同第一種情況一樣,后面可以繼續(xù)拼接各種條件。
第三種
EntityWrapper()拼接where條件,這個(gè)其實(shí)在第二種情況中已經(jīng)講了,就是根據(jù)我們創(chuàng)建EntityWrapper的時(shí)候有沒有入?yún)碜觥?/p>
到目前我們只用到了這些,以后遇到了我會(huì)繼續(xù)更新。
MybatisPlus自定義sql查詢
public void reconciliationForConfirmOne(Integer Id, Integer payoffType) { List<FinanceReconciliationEntity> frList = financeReconciliationService.selectList( new EntityWrapper<FinanceReconciliationEntity>() .eq("payoff_id", Id) .eq("payoff_type", payoffType) .where("(reconciliation_status <> 1 OR reconciliation_status IS NULL)") ); for (FinanceReconciliationEntity fr : frList) { fr.setReconciliationStatus(1); } if (frList != null && frList.size() > 0) { financeReconciliationService.updateBatchById(frList); } }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中l(wèi)ist根據(jù)id獲取對象的幾種方式
這篇文章主要給大家介紹了關(guān)于Java中l(wèi)ist根據(jù)id獲取對象的幾種方式,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07SpringBoot實(shí)現(xiàn)跨域的幾種常用方式總結(jié)
跨域是指一個(gè)域下的文檔或腳本試圖去請求另一個(gè)域下的資源,或者涉及到兩個(gè)不同域名的資源之間的交互,由于同源策略(Same Origin Policy)的限制,瀏覽器不允許跨域請求,本文小編給大家分享了SpringBoot實(shí)現(xiàn)跨域的幾種常用方式,需要的朋友可以參考下2023-09-09Java多線程并發(fā)synchronized?關(guān)鍵字
這篇文章主要介紹了Java多線程并發(fā)synchronized?關(guān)鍵字,Java?在虛擬機(jī)層面提供了?synchronized?關(guān)鍵字供開發(fā)者快速實(shí)現(xiàn)互斥同步的重量級鎖來保障線程安全。2022-06-06javaweb實(shí)現(xiàn)投票系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了javaweb實(shí)現(xiàn)投票系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09SpringBoot 自定義+動(dòng)態(tài)切換數(shù)據(jù)源教程
這篇文章主要介紹了SpringBoot 自定義+動(dòng)態(tài)切換數(shù)據(jù)源教程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12關(guān)于SpringBoot接收json格式的Demo案例
這篇文章主要介紹了關(guān)于SpringBoot接收json格式的Demo案例,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05SpringBoot自定義注解實(shí)現(xiàn)Token校驗(yàn)的方法
這篇文章主要介紹了SpringBoot自定義注解實(shí)現(xiàn)Token校驗(yàn)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03