MyBatis 分頁查詢本身并不直接支持多表連接,但通過 MyBatis Plus 及其插件,可以實現多表連接的分頁查詢。以下是相關介紹:
public List<UserDTO> getUsersWithOrders() {
Page<UserDTO> page = new Page<>(1, 10);
MPJLambdaWrapper<User> wrapper = new MPJLambdaWrapper<User>().selectAll(User.class)
.select(UserAddressDO::getTel)
.selectAs(UserAddressDO::getAddress, UserDTO::getUserAddress)
.leftJoin(UserAddressDO.class, UserAddressDO::getUserId, UserDO::getId)
.leftJoin(AreaDO.class, AreaDO::getId, UserAddressDO::getAreaId)
.eq(UserDO::getId, 1)
.like(UserAddressDO::getTel, "1")
.gt(UserDO::getId, 5);
Page<UserDTO> resultPage = userMapper.selectJoinPage(page, UserDTO.class, wrapper);
return resultPage.getRecords();
}
t
,其他表使用 join 語句中指定的別名。通過上述方法,MyBatis 分頁查詢確實可以支持多表連接,并且能夠有效地提高開發效率。