|
MyBatis-Plus 最佳搭档,只增强不改变,简化开发为效率而生
支持连表查询的mybatis-plus体验!mybatis-plus风格的连表操作,提供 leftJoin、rightJoin、innerJoin连表操作
使用方法安装- Maven
- <dependency>
- <groupId>com.github.yulichang</groupId>
- <artifactId>mybatis-plus-join-boot-starter</artifactId>
- <version>1.5.3</version>
- </dependency>
复制代码
- Gradle
- implementation 'com.github.yulichang:mybatis-plus-join-boot-starter:1.5.3'
复制代码 或者clone代码到本地执行 mvn install, 再引入以上依赖
注意: MyBatis Plus版本需要3.1.2+
使用Lambda形式用法(MPJLambdaWrapper)简单的连表查询
- class test {
- @Resource
- private UserMapper userMapper;
- void testJoin() {
- //和Mybatis plus一致,MPJLambdaWrapper的泛型必须是主表的泛型,并且要用主表的Mapper来调用
- MPJLambdaWrapper<UserDO> wrapper = JoinWrappers.lambda(UserDO.class)
- .selectAll(UserDO.class)//查询user表全部字段
- .select(UserAddressDO::getTel)//查询user_address tel 字段
- .selectAs(UserAddressDO::getAddress, UserDTO::getUserAddress)//别名
- .select(AreaDO::getProvince, AreaDO::getCity)
- .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);
- //连表查询 返回自定义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, t1.address AS userAddress,
- t2.province, t2.city
- FROM
- user t
- LEFT JOIN user_address t1 ON t1.user_id = t.id
- LEFT JOIN area t2 ON t2.id = t1.area_id
- WHERE (
- t.id = ?
- AND t1.tel LIKE ?
- AND t.id > ?)
复制代码
PS:附件中包含mybatis-plus4源码

链接: https://pan.baidu.com/s/1aUP7zRGDNDSeeLykSEcKQQ
提取码下载:
|
|