你還在手寫 join 聯(lián)表查詢?MyBatis-Plus 這樣寫太香了!
使用方法
安裝
Maven
Gradle
或者clone代碼到本地執(zhí)行 mvn install, 再引入以上依賴
使用
mapper繼承MPJBaseMapper (必選)
service繼承MPJBaseService (可選)
serviceImpl繼承MPJBaseServiceImpl (可選)
核心類 MPJLambdaWrapper和MPJQueryWrapper
MPJLambdaWrapper用法
簡單的三表查詢
對應(yīng)sql
說明:
UserDTO.class 查詢結(jié)果返回類(resultType)
selectAll() 查詢指定實(shí)體類的全部字段
select() 查詢指定的字段,支持可變參數(shù),同一個select只能查詢相同表的字段 故將UserAddressDO和AreaDO分開為兩個select()
selectAs() 字段別名查詢,用于數(shù)據(jù)庫字段與業(yè)務(wù)實(shí)體類屬性名不一致時使用
leftJoin() 參數(shù)說明 第一個參數(shù): ?參與連表的實(shí)體類class 第二個參數(shù): ?連表的ON字段,這個屬性必須是第一個參數(shù)實(shí)體類的屬性 第三個參數(shù): ?參與連表的ON的另一個實(shí)體類屬性
默認(rèn)主表別名是t,其他的表別名以先后調(diào)用的順序使用t1,t2,t3....
條件查詢,可以查詢主表以及參與連接的所有表的字段,全部調(diào)用mp原生的方法,正常使用沒有sql注入風(fēng)險
分頁查詢
對應(yīng)sql
MPJQueryWrapper
對應(yīng)sql
說明:
UserDTO.class 查詢結(jié)果類(resultType)
selectAll(UserDO.class) 查詢主表全部字段(主表實(shí)體類)默認(rèn)主表別名 "t"
select() mp的select策略是覆蓋,以最后一次為準(zhǔn),這里的策略是追加,可以一直select 主表字段可以用lambda,會自動添加表別名,主表別名默認(rèn)是 t ,非主表字段必須帶別名查詢
leftJoin() rightJoin() innerJoin() 傳sql片段 格式 (表 + 別名 + 關(guān)聯(lián)條件)
條件查詢,可以查詢主表以及參與連接的所有表的字段,全部調(diào)用mp原生的方法,正常使用沒有sql注入風(fēng)險
分頁查詢
對應(yīng)sql
還可以這么操作,但不建議
對應(yīng)sql
作者:陽宗德
鏈接:https://juejin.cn/post/7110405284811522085