分页查询的实现有两种方式

分页查询的实现有两种方式

1、在sql中使用 limit子句 实现分页查询

limit关键字的用法是:LIMIT [offset,] rows

select * from tablex limit 5,5;

Ps1:offset是相对于首行的偏移量(首行是0),rows是返回条数

Ps2:mapper中可以传变量,即在实际使用的时候 “offset与rows”可以用变量替代

2、使用第三方库进行分页查询,如mybatis的插件pagehelper

使用PageHelper好处:在实际项目开发中更方便

原因是:在项目中我们执行一个分页查询时,很多时候还会需要知道该查询的其他信息,如总数、每页数量、当前页数、上一页或下一页等等,这些信息如果每次都自己写的话就太麻烦了,而pagehelper能够帮助我们更方便地获取这些信息,大大方便了我们的开发效率。

pagehelper使用步骤

一:导入插件

1:pom.xml中导入依赖

-- mybatis 中使用
		<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>x.x.xx</version>
        </dependency>
-- spring boot 中使用
		<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>x.x.xx</version>
        </dependency>

注意导入的依赖是spring版本的而不是其独立版本,否则pagehelper将不起作用

二、声明插件

// mybatis 中
在mybatis配置文件(mybatis-config.xml)中声明插件
... properties,typeAliases
	 <!-- 配置分页插件PageHelper -->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <property name="helperDialect" value="mysql"/>
        </plugin>
    </plugins>
... environments

// spring boot 中
在springboot配置文件(applicable.yml)中声明插件

#pagehelper分页插件配置
pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

三、使用

        int pageNum = 1;//当前页码
        int pageSize = 5;//页面显示记录条数
        PageHelper.startPage(pageNum,pageSize);// 开启分页
        List<Emp> emps = mapper.selectAll();// 原查询语句的结果
        PageInfo<Emp> pageInfo = new PageInfo<Emp>(emps);
        // 获取当前页码
        int pageNum1 = pageInfo.getPageNum();
        System.out.println("pageNum = " + pageNum1);
        // 获取当前页面是第几页
        int pageSize1 = pageInfo.getPageSize();
        System.out.println("pageSize = " + pageSize1);
        // 获取总记录数
        long total = pageInfo.getTotal();
        System.out.println("total = " + total);
        // 获取当前页面记录数
        int size = pageInfo.getSize();
        System.out.println("size = " + size);
        // 获取开始记录数
        int startRow = pageInfo.getStartRow();
        System.out.println("startRow = " + startRow);
        // 获取结束记录数
        int endRow = pageInfo.getEndRow();
        System.out.println("endRow = " + endRow);

注意:只有紧跟着PageHelper.startPage()的sql语句才被pagehelper起作用
基本使用就这样啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值