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

