一丶簡介
衆所周知MybatiesPlus架構封裝一些簡單的操作資料庫的方法, 但對于聯表的一些操作3.4.0版本之前是沒有任何封裝方法的, 3.4版本之後提供了兩個條件構造器并封裝了一些聯表操作的方法 !
二丶使用前提
1丶将Mybaties Plus升到 >= 3.4.0版本
2丶引用 jar 包 :
<!-- mybatis-plus-join 聯表查詢依賴 -->
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join</artifactId>
<version>1.1.8</version>
</dependency>
3丶mapper繼承MPJBaseMapper(它是繼承了BaseMapper)
三丶兩個條件構造器: MPJQueryWrapper 和 MPJLambdaWrapper
1丶不同 : 入參方式的不同, MPJLambdaWrapper更傾向于JAVA編輯, MPJQueryWrapper更傾向于資料庫操作編輯 . 如下圖 :
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0zYtJGcxIjYqlTMjBXOxoVds12Y350MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLjFjY2EjZ3gjMmNmNyEzMhJjNhRzNxkjYjVDMhJ2N4U2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2丶相同點 : 都是聯表查詢構造器
四丶使用MPJLambdaWrapper構造器測試幾個方法的簡單使用
@Test
public void test1() {
// 聯表查詢條數
Integer index = jzjlDao.selectJoinCount(
new MPJLambdaWrapper<JZJLEntity>()
.eq(JZJLEntity::getKSBH,"001")
.leftJoin(KSGLEntity.class, KSGLEntity::getBH, JZJLEntity::getKSBH));
System.out.println(JSONObject.toJSONString(index));
// 聯表查詢單條
JZJLEntity entityA = jzjlDao.selectJoinOne(JZJLEntity.class,
new MPJLambdaWrapper<JZJLEntity>()
.select(JZJLEntity::getXM)
.select(JZJLEntity::getJZSJ)
.selectAs(KSGLEntity::getMC,JZJLEntity::getKSMC)
.eq(JZJLEntity::getBH, "0001")
.leftJoin(KSGLEntity.class, KSGLEntity::getBH, JZJLEntity::getKSBH));
System.out.println(JSONObject.toJSONString(entityA));
// 聯表查詢多條資料
List<JZJLEntity> listA = jzjlDao.selectJoinList(JZJLEntity.class,
new MPJLambdaWrapper<JZJLEntity>()
.select(JZJLEntity::getXM)
.select(JZJLEntity::getJZSJ)
.selectAs(KSGLEntity::getMC,JZJLEntity::getKSMC)
.leftJoin(KSGLEntity.class, KSGLEntity::getBH, JZJLEntity::getKSBH));
System.out.println(JSONObject.toJSONString(listA));
// 聯表分頁查詢
IPage<JZJLEntity> iPage = jzjlDao.selectJoinPage(new Page<JZJLEntity>(2, 10), JZJLEntity.class,
new MPJLambdaWrapper<JZJLEntity>()
.selectAll(JZJLEntity.class)
.selectAs(KSGLEntity::getMC, JZJLEntity::getKSMC)
.leftJoin(KSGLEntity.class, KSGLEntity::getBH, JZJLEntity::getKSBH));
System.out.println(JSONObject.toJSONString(iPage.getRecords()));
// 聯表查詢單條Map
Map<String,Object> map = jzjlDao.selectJoinMap(
new MPJLambdaWrapper<JZJLEntity>()
.selectAll(JZJLEntity.class)
.selectAs(KSGLEntity::getMC, JZJLEntity::getKSMC)
.eq(JZJLEntity::getBH, "0001")
.leftJoin(KSGLEntity.class, KSGLEntity::getBH, JZJLEntity::getKSBH));
System.out.println(JSONObject.toJSONString(map));
}
就寫到這吧, 有問題下方留言 !