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 分页查询确实可以支持多表连接,并且能够有效地提高开发效率。