mybatis-plus 分页

配置分页插件

        mybatis-plus要实现分页查询,得先向mybatis-plus的插件集合中添加分页插件,mybatis-plus已经提供了成熟的分页插件,我们简单配置下就行,以springboot为例,代码如下

@Configuration
public class MybatisPulsConfig {

    /*
     * @description: mybatis-plus插件配置 
* @create: 2023/5/11 11:21
* @param * @return com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor(){ //分页插件 PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); //数据库类型 paginationInnerInterceptor.setDbType(DbType.MYSQL); //添加到插件列表 MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor); return mybatisPlusInterceptor; } }

分页插件可配置属性如下:

overflow:溢出总页数后是否进行处理(默认不处理)

maxLimit:单页分页条数限制(默认无限制)

dbType:数据库类型(根据类型获取应使用的分页方言),建议单一数据库类型的均设置 dbType

dialect:方言实现类 

分页测试

原生的page查询

public Page selectPage(SysUser sysUser) {
        Page page = new Page<>();
        page.setCurrent(1);
        page.setSize(5);
        page = lambdaQuery().page(page);
        return page;
    }

 自定义mapper的分页查询

@Mapper
public interface SysUserMapper extends BaseMapper {

    Page listPage(Page page, SysUser sysUser);
}

        如果返回类型是Page则入参的Page不能为null,因为返回的Page==入参的Page; 如果想临时不分页,可以在初始化Page时size参数传 <0 的值;如果返回类型是 List 则入参的 Page可以为 null(为 null 则不分页)。Page对象是IPage的实现类,是mybatis-plus提供的一个分页对象,如果有个性化需求,可自定义实现了IPage接口的分页对象。

注意:分页时生成 countSql 会在 left join 的表不参与 where 条件的情况下,把 left join 优化掉,所以建议任何带有 left join 的sql,都写标准sql,即给于表一个别名,字段也要:别名.字段。

Page对象属性如下:

属性名 类型 默认值 描述
records List emptyList 查询数据列表
total Long 0 查询列表总记录数
size Long 10 每页显示条数,默认 10
current Long 1 当前页
orders List emptyList 排序字段信息,允许前端传入的时候,注意 SQL 注入问题,可以使用 SqlInjectionUtils.check(...) 检查文本
optimizeCountSql boolean true 自动优化 COUNT SQL 如果遇到 jSqlParser 无法解析情况,设置该参数为 false
optimizeJoinOfCountSql boolean true 自动优化 COUNT SQL 是否把 join 查询部分移除
searchCount boolean true 是否进行 count 查询,如果指向查询到列表不要查询总记录数,设置该参数为 false
maxLimit Long 单页分页条数限制
countId String xml 自定义 count 查询的 statementId

你可能感兴趣的:(mybatis-plus笔记,mybatis,java,mysql)