============================
問題描述:在微服務裏面做查詢接口,用到pageHelper,數據庫只有8行數據,pageNum=1&pageSize=10,pageNum=2&pageSize=10,pageNum=3&pageSize=10。。。返回的數據都是那8條。
原因:這是pageHelper裏面自帶的一個功能,叫做reasonable分頁參數合理化,3.3.0以上版本可用,默認是false。 啓用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>pages會查詢最後一頁; 禁用合理化時,如果pageNum<1或pageNum>pages會返回空數據。
解決:一般項目裏面加入<property name="reasonable" value="false" />,Spring Boot項目裏面:pagehelper.reasonable=false
原文鏈接:https://blog.csdn.net/rickiyeat/article/details/62042170
===========================
在springboot中使用PageHelper插件有兩種較爲相似的方式,接下來我就將這兩種方式進行總結。
方式一:使用原生的PageHelper
1.在pom.xml中引入依賴
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.3</version>
</dependency>
2.在項目裏面添加配置
@Configuration
public class MybatisConfig {
@Bean
public PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("dialect", "Mysql");
p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
pageHelper.setProperties(p);
return pageHelper;
}
}
方式二:使用PageHelper的starter
1.在pom.xml中引入依賴
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
2.在application.properties配置pagehelper的屬性
#pagehelper分頁插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
最後就是使用pagehelper進行分頁了,其中最重要的一句就是
PageHelper.startPage(pageNum,pageSize);pageNum:當前頁數 pageSize:當前頁需要顯示的數量
例如:
public PageInfo<Blog> ajaxBlog(Integer pageNum,Integer pageSize){
PageHelper.startPage(pageNum,pageSize);
List<Blog> blogList = blogMapper.selectByExample(new BlogExample());
PageInfo<Blog> pageInfo = new PageInfo<Blog>(blogList);
return pageInfo;
}
後面就不具體貼了,自由發揮。
原文鏈接:https://blog.csdn.net/csdn_huzeliang/article/details/79350425
=====================================