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.9</version> </dependency> - Gradle
或者 clone 代码到本地执行implementation 'com.github.yulichang:mybatis-plus-join-boot-starter:1.5.9'mvn install, 再引入以上依赖
版本对应关系:
| Mybatis-Plus-Join | Mybatis-Plus |
|---|---|
| 1.5.9 | 3.5.17+ |
| 1.5.8 | 3.1.2 - 3.5.16 |
使用
- 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
用爱发电
