mybatis-plus-join
Introduction: 支持连表查询的 mybatis-plus,mybatis-plus 风格的连表操作提供 wrapper.leftJoin(),wrapper.rightJoin()等操作
Tags:
MyBatis-Plus-Join
为简化开发工作、提高生产率而生
对 MyBatis-Plus 多表查询的扩展 | 演示工程 | 使用文档 | 点个 Star 支持一下吧 (☆▽☆)
使用文档 WIKI
使用方法
安装
- 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
Lambda 形式用法(MPJLambdaWrapper)
简单的连表查询
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 ? )
完整使用文档 wiki
用爱发电
