一、配置pom
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
二、配置文件application
# 這裏用的是application.yml
pagehelper:
# 指定數據庫,不指定的話會默認自動檢測數據庫類型
# 目前支持:Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL
helper-dialect: mysql
# 用於從對象中根據屬性名取值,
# 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默認值,
# 默認值爲 pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
params: count=countSql
# 是否啓用分頁合理化。
# 如果啓用,當pagenum<1時,會自動查詢第一頁的數據,當pagenum>pages時,自動查詢最後一頁數據;
# 不啓用的,以上兩種情況都會返回空數據
reasonable: true
# 默認值false,分頁插件會從查詢方法的參數值中,自動根據上面 params 配置的字段中取值,查找到合適的值時就會自動分頁。
support-methods-arguments: true
三、編寫代碼樣例
// serviceImpl
@Override
public List<user> queryAllByPage(int pageNum, int pageSize) {
//關鍵
PageHelper.startPage(pageNum,pageSize);
return userMapper.selectAll();
}
// service
List<user> queryAllByPage(int pageNum, int pageSize);
// controller
@GetMapping(value = "/api/user/queryAllByPage")
public HashMap<String,Object> queryAllByPage(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,@RequestParam(value = "pageSize",defaultValue = "15") int pageSize){
HashMap<String, Object> map = new HashMap<>();
List<user> usersList = userService.queryAllByPage(pageNum,pageSize);
map.put("results",usersList);
return map;
}