當前頁面 + 每頁記錄數 如何拼接?
- 調用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就能獲取到所需要的總條數、分頁查詢的數據,至於獲取出來怎么處理,就需要根據前端需求決定了