mybatis数据库分页怎么实现
时间: 2023-05-25 16:05:34 浏览: 148
Mybatis提供了两种方式实现数据库分页:
1. 使用MySQL的LIMIT和OFFSET语句进行分页
在SQL中使用LIMIT和OFFSET语句对数据进行分页,其中LIMIT表示每页显示的记录数,OFFSET表示从第几条记录开始显示。
在Mapper.xml中编写SQL实现分页功能:
```xml
<!-- 使用MySQL数据库分页 -->
<select id="selectByPage" parameterType="map" resultMap="baseResultMap">
select *
from table
limit #{start}, #{rows}
</select>
```
Java代码中传入参数,计算出start和rows的值,并调用Mapper方法:
```java
Map<String, Integer> paramMap = new HashMap<>();
paramMap.put("start", (pageNo - 1) * pageSize);
paramMap.put("rows", pageSize);
List<Record> recordList = mapper.selectByPage(paramMap);
```
2. 使用Mybatis的分页插件PageHelper进行分页
PageHelper是Mybatis官方提供的分页插件,使用PageHelper可以更简单地实现分页功能。
首先在pom.xml中导入PageHelper的依赖:
```xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
```
在Mapper.xml中使用PageHelper进行分页:
```xml
<select id="selectByPage" resultMap="baseResultMap">
select *
from table
order by id desc
</select>
```
同时在Java代码中配置PageHelper:
```java
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
PageHelper.startPage(pageNo, pageSize, true);
List<Record> records = mapper.selectByPage();
PageInfo<Record> pageInfo = new PageInfo<>(records);
```
其中,startPage方法用来配置分页参数,pageNum表示页码,pageSize表示每页显示的条数,orderBy表示排序方式。然后调用Mapper方法查询数据,并将查询结果传入PageInfo中,PageInfo中包含了分页的相关信息,如总共多少页,当前页码等。
阅读全文