本文主要是介绍Spring Boot 整合 Mybatis (二) pagehelper-spring-boot-starter 分页插件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://github.com/pagehelper/pagehelper-spring-boot
1,maven依赖
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<!-- 分页插件 -->
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.10</version>
</dependency>
2.application.yml
pagehelper:helper-dialect: mysql #数据库方言reasonable: true #分页合理化support-methods-arguments: true #是否支持接口参数来传递分页参数,默认falsepage-size-zero: true #当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果params: count=countSql
以下解释均查阅网上资料:
-
helperDialect
:分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置helperDialect
属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值:oracle
,mysql
,mariadb
,sqlite
,hsqldb
,postgresql
,db2
,sqlserver
,informix
,h2
,sqlserver2012
,derby
特别注意:使用 SqlServer2012 数据库时,需要手动指定为sqlserver2012
,否则会使用 SqlServer2005 的方式进行分页。
你也可以实现AbstractHelperDialect
,然后配置该属性为实现类的全限定名称即可使用自定义的实现方法。 -
offsetAsPageNum
:默认值为false
,该参数对使用RowBounds
作为分页参数时有效。 当该参数设置为true
时,会将RowBounds
中的offset
参数当成pageNum
使用,可以用页码和页面大小两个参数进行分页。 -
rowBoundsWithCount
:默认值为false
,该参数对使用RowBounds
作为分页参数时有效。 当该参数设置为true
时,使用RowBounds
分页会进行 count 查询。 -
pageSizeZero
:默认值为false
,当该参数设置为true
时,如果pageSize=0
或者RowBounds.limit = 0
就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是Page
类型)。 -
reasonable
:分页合理化参数,默认值为false
。当该参数设置为true
时,pageNum<=0
时会查询第一页,pageNum>pages
(超过总数时),会查询最后一页。默认false
时,直接根据参数进行查询。 -
params
:为了支持startPage(Object params)
方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值, 可以配置pageNum,pageSize,count,pageSizeZero,reasonable
,不配置映射的用默认值, 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
。 -
supportMethodsArguments
:支持通过 Mapper 接口参数来传递分页参数,默认值false
,分页插件会从查询方法的参数值中,自动根据上面params
配置的字段中取值,查找到合适的值时就会自动分页。 使用方法可以参考测试代码中的com.github.pagehelper.test.basic
包下的ArgumentsMapTest
和ArgumentsObjTest
。 -
autoRuntimeDialect
:默认值为false
。设置为true
时,允许在运行时根据多数据源自动识别对应方言的分页 (不支持自动选择sqlserver2012
,只能使用sqlserver
) -
closeConn
:默认值为true
。当使用运行时动态数据源或没有设置helperDialect
属性自动获取数据库类型时,会自动获取一个数据库连接, 通过该属性来设置是否关闭获取的这个连接,默认true
关闭,设置为false
后,不会关闭获取的连接,这个参数的设置要根据自己选择的数据源来决定。
3.实体类
package priv.gitonlie.mybatis.entity;public class Task {private String taskId;private String startDate;private String endDate;public String getTaskId() {return taskId;}public void setTaskId(String taskId) {this.taskId = taskId;}public String getStartDate() {return startDate;}public void setStartDate(String startDate) {this.startDate = startDate;}public String getEndDate() {return endDate;}public void setEndDate(String endDate) {this.endDate = endDate;}}
4.数据持久层
Mapper接口
public interface TaskMapper {List<Task> queryTaskAll();
}
Mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="priv.gitonlie.mybatis.mapper.TaskMapper"><select id="queryTaskAll" resultType="Task">SELECT t.ID_ taskId,t.START_TIME_ startDate,t.END_TIME_ endDatefrom act_hi_taskinst t</select>
</mapper>
5.service层分页查询
package priv.gitonlie.mybatis.service;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;import priv.gitonlie.mybatis.entity.Task;
import priv.gitonlie.mybatis.mapper.TaskMapper;@Service
public class TaskService {@Autowiredprivate TaskMapper taskMapper;public PageInfo<Task> queryTaskAll(Integer pageNum,Integer pageSize){PageHelper.startPage(pageNum, pageSize);List<Task> list = taskMapper.queryTaskAll();PageInfo<Task> pageInfo = new PageInfo<Task>(list);return pageInfo;}
}
6.Controller控制层
@RestController
public class TaskController {@Autowiredprivate TaskService service;@GetMapping("task")public List<Task> taskList(Integer pageNum,Integer pageSize) {PageInfo<Task> pageInfo = service.queryTaskAll(pageNum, pageSize);List<Task> taskList = pageInfo.getList();return taskList; }
}
7.数据显示
这篇关于Spring Boot 整合 Mybatis (二) pagehelper-spring-boot-starter 分页插件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!