为简化开发工作、提高生产率而生
对 MyBatis-Plus 多表查询的扩展 | 演示工程 | 使用文档 | 点个Star支持一下吧 (☆▽☆)
- Maven
<dependency> <groupId>com.github.yulichang</groupId> <artifactId>mybatis-plus-join-boot-starter</artifactId> <version>1.5.7</version> </dependency>
- Gradle
或者clone代码到本地执行
implementation 'com.github.yulichang:mybatis-plus-join-boot-starter:1.5.7'mvn install, 再引入以上依赖
注意: MyBatis Plus版本需要3.1.2+
- mapper继承MPJBaseMapper
class test {
@Resource
private UserMapper userMapper;
void testJoin() {
MPJLambdaWrapper<UserDO> wrapper = JoinWrappers.lambda(UserDO.class)
.selectAll(UserDO.class)
.select(AddressDO::getTel)
.leftJoin(AddressDO.class, AddressDO::getUserId, UserDO::getId)
.eq(UserDO::getId, 1)
.like(AddressDO::getTel, "1");
//连表查询 返回自定义ResultType
List<UserDTO> list = userMapper.selectJoinList(UserDTO.class, wrapper);
//分页查询 (需要启用 mybatis plus 分页插件)
Page<UserDTO> listPage = userMapper.selectJoinPage(new Page<>(2, 10), UserDTO.class, wrapper);
}
}对应sql
SELECT
t.id, t.name, t.sex, t.head_img,
t1.tel
FROM user t
LEFT JOIN address t1 ON t1.user_id = t.id
WHERE ( t.id = ? AND t1.tel LIKE ? )
