分頁查詢-PageHelper底層原理分析以及使用PageHelper的步驟


當前頁面 + 每頁記錄數 如何拼接?

  1. 調用startPage

 

  2.將分頁參數存入TreadLocal本地線程對象setLocalPage(將數據存起來)

 

 

   3.設置分頁后,會被攔截

 

 

 

  4.執行分頁查詢

 

 

 

 

  5.拼接分頁sql語句

 

 

 

  6.最后調用mybatis查詢獲取結果,返回頁面

 

 

如何使用PageHelper呢?

1、在dao層的resource目錄下創建sqlMapConfig.xml文件,在配置文件中配置以下內容,目的是在操作數據庫之前進行攔截

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<plugins>
<!-- com.github.pagehelper 為 PageHelper 類所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 設置數據庫類型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六種數據庫-->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
</configuration>


2、在業務邏輯代碼中調用startPage方法
  2.1:PageHelper.startPage(CurrentPage,PageSize);
    a.PageHelper類的使用需要引入依賴或者jar包
    b.需要傳入的參數:CurrentPage:當前頁是多少
             PageSize  :每頁顯示多少條

 3、dao層調用方法,執行sql語句

    3.1:Page<CheckGroup> page = dao.findPage(queryString);
      a.傳入的參數:查詢條件,一般前端查詢的時候會附帶一個查詢框,如果查詢框有查詢條件則會傳輸到后端,進行模糊匹配查詢(注意,查詢條件有可能為空,所以sql語句一定要做非空判斷再加查詢條件)
      b.返回值:返回值可以是自己選擇的容器,只要能裝下查詢出來的數據就行,也可以用上面的Page類,指定可以裝查詢出來的數據的pojo類
      c.如果是用的Page類,那么用這個類的對象.get就能獲取到所需要的總條數、分頁查詢的數據,至於獲取出來怎么處理,就需要根據前端需求決定了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM