這篇文章主要介紹MybatisPlus EntityWrapper怎么自定義SQL,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
在mybatis plus中根據條件構造器,構建SQL查詢是很方便的,使用條件構造器可以替代我們寫SQL。下面我們看幾個例子。
使用T selectOne(Wrapper<T> wrapper);我們只需要傳遞入我們創建一個EntityWrapper()并將條件拼接好就可以。
例如new EntityWrapper().eq("id","1")就是查詢id等于1的這條數據。這里不僅僅支持eq(),還有like,not like ,group by等,差不多在SQL中需要的這里都有。
在單表查詢的時候我們需要自定義列的時候則使用setSqlSelect方法,具體如下:
/**此格式的意思為requireParam傳參了才創建where條件,請按照此格式撰寫代碼 *Object為你的單表實體類 *requireParam為入參實體類 *EntityWrapper<Object> ew = new EntityWrapper<Object>(requireParam);是為了讓構造where條件 *我在前面給requireParam的state屬性設置了值為1,所以這里會自動拼接上where條件,如果不需要的話則可不傳requireParam * * **/ EntityWrapper<Object> ew = new EntityWrapper<Object>(requireParam); /**設置需要查詢的列名**/ ew.setSqlSelect("id,resource_id,user_id,username,content,createtime,parent_id," + " path,type,like_count") /**排序方式**/ .orderBy(false,"path",false);
同第一種情況一樣,后面可以繼續拼接各種條件。
EntityWrapper()拼接where條件,這個其實在第二種情況中已經講了,就是根據我們創建EntityWrapper的時候有沒有入參來做。
到目前我們只用到了這些,以后遇到了我會繼續更新。
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); } }
以上是“MybatisPlus EntityWrapper怎么自定義SQL”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。