【Java閉關修煉】MyBatis-分頁插件PageHelper
-
- 介紹
- 分頁插件的實作步驟
- 分頁參數的擷取
- 分頁插件的總結
介紹
使用SQL語句進行分頁操作
-- 第一頁:顯示三條資料 (目前頁-1 * 每頁顯示條數),每頁顯示條數
-- SELECT * FROM student LIMIT 0,3
-- 第二頁顯示三條資料
SELECT * FROM student LIMIT 3,3
分頁插件的實作步驟
- 導入jar包
- 在核心配置檔案中內建分頁助手插件
- 在測試類中使用分頁助手相關API實作分頁功能
核心配置檔案中內建分頁助手插件功能
<!--內建分頁助手插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
public void selectPaging() throws IOException {
// 加載核心配置檔案
InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
// 擷取sqlSession工廠對象
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(is);
// 通過工廠對象擷取sqlSession對象
SqlSession sqlSession = build.openSession(true);
// 擷取mapper接口的實作類對象
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
// 通過分頁助手來實作分頁功能 第一頁顯示三條資料
PageHelper.startPage(1,3);
// 第二頁顯示三條資料
PageHelper.startPage(2,3);
// 第三頁顯示三條資料
PageHelper.startPage(3,3);
// 調用實作類方法 接受結果
List<Student> students = mapper.selectAll();// 查詢結果 傳回一個student數組
// 處理結果
for (Student student : students) {
System.out.println(student);
}
}
分頁參數的擷取
@Test
public void selectPaging() throws IOException {
// 加載核心配置檔案
InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
// 擷取sqlSession工廠對象
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(is);
// 通過工廠對象擷取sqlSession對象
SqlSession sqlSession = build.openSession(true);
// 擷取mapper接口的實作類對象
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
// 通過分頁助手來實作分頁功能 第一頁顯示三條資料
// PageHelper.startPage(1,3);
//
// // 第二頁顯示三條資料
// PageHelper.startPage(2,3);
//
//
// // 第三頁顯示三條資料
// PageHelper.startPage(3,3);
// 調用實作類方法 接受結果
List<Student> students = mapper.selectAll();// 查詢結果 傳回一個student數組
PageInfo<Student> info = new PageInfo<>(students);// 擷取分頁對象
// 擷取分頁的相關參數
System.out.println("總條數:" + info.getTotal());
System.out.println("總頁數" + info.getPages());
System.out.println("目前頁"+ info.getPageNum());
System.out.println("每條顯示頁數" + info.getPageSize());
System.out.println("上一頁:" + info.getPrePage());
System.out.println("下一頁: " + info.getNextPage());
}