mybatis-plus-join

Introduction: 支持连表查询的 mybatis-plus,mybatis-plus 风格的连表操作提供 wrapper.leftJoin(),wrapper.rightJoin()等操作
More: Author   ReportBugs   
Tags:

Mybatis-Plus-Join-Logo

MyBatis-Plus-Join

为简化开发工作、提高生产率而生

Maven central code style

MyBatis-Plus 多表查询的扩展 | 演示工程 | 使用文档 | 点个 Star 支持一下吧 (☆▽☆)

可添加作者微信,咨询问题或提供意见与建议
添加作者微信,备注 MPJ,加入微信群

使用文档 WIKI

使用方法

安装

  • Maven
    <dependency>
        <groupId>com.github.yulichang</groupId>
        <artifactId>mybatis-plus-join-boot-starter</artifactId>
        <version>1.5.7</version>
    </dependency>
    
  • Gradle
     implementation 'com.github.yulichang:mybatis-plus-join-boot-starter:1.5.7'
    
    或者 clone 代码到本地执行 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

用爱发电

支持一下 mybatis-plus-join
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools
AI Daily Digest