SpringBoot整合Mybatis關於分頁查詢的方法

最近公司在用到SpringBoot整合Mybatis時當web端頁面數據增多時須要使用分頁查詢以方便來展現數據。本人對分頁查詢進行了一些步驟的總結,但願可以幫助到有須要的博友。若有更好的方式,也但願評論留言,本人以做更好的改進。javascript

 

SpringBoot+Mybatis+PageHelper實現分頁

如下介紹實戰中數據庫框架使用的是mybatis,對整合mybatis此處不作介紹。java

使用pageHelper實現分頁查詢其實很是簡單,共三步:git

1、導入依賴;  github

推薦博友能夠上maven中央倉庫去找合適的版本進行PageHelper的依賴導入web

maven中央倉庫地址:https://mvnrepository.comspring

進入maven中央倉庫後在搜索框搜索PageHelper,選擇合適的版本sql

 

 

 

 

pagehelper支持多種數據庫:Oracle,MySql,MariaDB,SQLite,DB2,PostgreSQL,SqlServer 等數據庫

在這裏咱們選擇pageHelper-spring-boot-starterapache

 

 

 

 

,點擊進入後根據項目須要選擇版本,在這裏我選擇1.2.12的最新版本springboot

 

 

 

 複製maven依賴,添加至項目的pom.xml中

 

 

 至此,PageHelper插件就引入完成。

 

2、添加配置;

aplication.yml或aplication.xml中添加配置:

 

 

 配置項說明:

1.helperDialect:指定數據庫
2.reasonable:默認是false。啓用合理化時,若是pageNum<1會查詢第一頁,若是pageNum>pages(最大頁數)會查詢最後一頁。
禁用合理化時,若是pageNum<1或pageNum>pages會返回空數據
3.
supportMethodsArguments:是否支持接口參數來傳遞分頁參數,默認false
4.
params:爲了支持startPage(Object params)方法,增長了該參數來配置參數映射,用於從對象中根據屬性名取值,
能夠配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默認值,
默認值爲pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
其他參數詳情請看官方文檔:https://pagehelper.github.io/docs/howtouse

除此以外介紹另一種方法:

編寫分頁bean類,注意:這個類必定要放在springboot啓動類所在位置的平級或子級的包中,保證能springboot掃描到

import java.util.Properties;

import org.apache.ibatis.plugin.Interceptor;

import org.mybatis.spring.SqlSessionFactoryBean;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import com.github.pagehelper.PageHelper;

 

@Configuration

public class PageHelperBean {

 

@Bean

    PageHelper pageHelper(){

        //分頁插件

        PageHelper pageHelper = new PageHelper();

        Properties properties = new Properties();

        properties.setProperty("reasonable", "true");

        properties.setProperty("supportMethodsArguments", "true");

        properties.setProperty("returnPageInfo", "check");

        properties.setProperty("params", "count=countSql");

        pageHelper.setProperties(properties);

        //添加插件

        new SqlSessionFactoryBean().setPlugins(new Interceptor[]{pageHelper});

        return pageHelper;

    }

}

本人使用第一種方式(推薦使用)

3、在程序代碼中使用分頁查詢;

<1>.接口層(Mapper層)代碼展現:

 

 

 <2.>業務層(service層)代碼展現:

 

 

 注:使用PageHelper.startPage()方法設置分頁:pageCount:當前頁數  pageSize:每頁顯示的總記錄數

<3.>控制器層(controller層)代碼展現:

 

使用postman工做對方法進行測試:

get請求,輸入參數後進行測試

 

 

 

測試結果以下:

 

 

 

 

 

 

 當傳入參數pageCount=1,pageSize=3時,total記錄爲4,進行了分頁操做,第一個記錄了三條數據,共兩頁

 

總結: 使用pagehelper插件後寫sql時不須要再在mapper.xml文件中寫分頁,簡化了代碼,提升開發效率

相關文章
相關標籤/搜索