Mybatis Plus 分页以及连表查询

Mybatis Plus 分页以及连表查询

1、Mybatis Plus分页配置类


import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

2、编写测试类

// 第一个参数:当前页数,第二个参数:每页显示多少条
        Page<User> userPage = new Page<>(1,2);
        Page<User> page = new LambdaQueryChainWrapper<User>(userService.getBaseMapper())
                .select(User::getId,User::getUsername)
                .lt(User::getId,10) // 条件id小于10的
                .page(userPage);
        // 总条数
        System.out.println("Total = " + page.getTotal());
        // 当前页
        System.out.println("Current = " + page.getCurrent());
        // 每页数量
        System.out.println("Size = " + page.getSize());
        // 查询到的数据列表
        System.out.println("Records = " + page.getRecords());

3、连表查询

  • Mybatis Plus自身是没有连表查询的功能的,需要导入新的依赖
<dependency>
    <groupId>com.github.yulichang</groupId>
    <artifactId>mybatis-plus-join</artifactId>
    <version>1.2.2</version>
</dependency>

其中

  • mapper 要继承MPJBaseMapper 实现对应的方法 (必选)
  • service 可以继承MPJBaseService 实现对应的方法 (可选)
  • serviceImpl 可以继承MPJBaseServiceImpl实现对应的方法 (可选)

4、编写测试类

List<User1> list = userMapper.selectJoinList(User1.class,
                new MPJLambdaWrapper<User1>()
                        .select(User1::getName)
                        .select(User2::getName)
                        .selectAll(User3.class)
                        .selectAs(User1::getNickName, UserDTO::getUserNickName)
                        .leftJoin(User2.class, User2::getId, User1::getId)
                        .leftJoin(User3.class, User3::getId, User1::getId)
posted @ 2022-03-02 22:33  -西门-  阅读(1208)  评论(0编辑  收藏  举报