image.png
@[toc]
十二色罚、分頁(yè)插件
12.1 分頁(yè)插件使用步驟
1. 添加依賴
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
2. 配置分頁(yè)插件
在MyBatis的核心配置文件中配置插件
<plugins>
<!--設(shè)置分頁(yè)插件-->
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
3. 在查詢接口之前寫上
PageHelper.startPage(int pageNum, int pageSize)
12.2 分頁(yè)插件的使用
- 在查詢功能之前使用
PageHelper.startPage(int pageNum, int pageSize)
開啟分頁(yè)功能-
pageNum
:當(dāng)前頁(yè)的頁(yè)碼 -
pageSize
:每頁(yè)顯示的條數(shù)
-
- 在查詢獲取list集合之后窟扑,使用PageInfo<T> pageInfo = new PageInfo<>(List<T> list, int navigatePages)獲取分頁(yè)相關(guān)數(shù)據(jù)
-
list
:分頁(yè)之后的數(shù)據(jù) -
navigatePages
:導(dǎo)航分頁(yè)的頁(yè)碼數(shù)
-
-
分頁(yè)相關(guān)數(shù)據(jù)
PageInfo{ pageNum=8, pageSize=4, size=2, startRow=29, endRow=30, total=30, pages=8, list=Page{count=true, pageNum=8, pageSize=4, startRow=28, endRow=32, total=30, pages=8, reasonable=false, pageSizeZero=false}, prePage=7, nextPage=0, isFirstPage=false, isLastPage=true, hasPreviousPage=true, hasNextPage=false, navigatePages=5, navigateFirstPage4, navigateLastPage8, navigatepageNums=[4, 5, 6, 7, 8] }
常用數(shù)據(jù):
-
pageNum
:當(dāng)前頁(yè)的頁(yè)碼 -
pageSize
:每頁(yè)顯示的條數(shù) -
size
:當(dāng)前頁(yè)顯示的真實(shí)條數(shù) -
total
:總記錄數(shù) -
pages
:總頁(yè)數(shù) -
prePage
:上一頁(yè)的頁(yè)碼 -
nextPage
:下一頁(yè)的頁(yè)碼 -
isFirstPage/isLastPage
:是否為第一頁(yè)/最后一頁(yè) -
hasPreviousPage/hasNextPage
:是否存在上一頁(yè)/下一頁(yè) -
navigatePages
:導(dǎo)航分頁(yè)的頁(yè)碼數(shù) -
navigatepageNums
:導(dǎo)航分頁(yè)的頁(yè)碼真仲,[1,2,3,4,5]
-
12.3 測(cè)試案例
/**
* 使用MyBatis的分頁(yè)插件實(shí)現(xiàn)分頁(yè)功能:
* 1.需要在查詢功能之前開啟分頁(yè)才能聲小
* PageHelper.startPage(int pageNum, int pageSize)
* 2.在查詢功能之后獲取分頁(yè)相關(guān)信息
* PageInfo<Brand> pageInfo = new PageInfo<>(brandList, 5);
* list: 表示分頁(yè)業(yè)數(shù)據(jù)
* navigatePages:表示當(dāng)前導(dǎo)航分頁(yè)的數(shù)量
**/
@Test
public void testMyBatis3(){
try {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession1 = sqlSessionFactory.openSession(true);
BrandMapper brandMapper = sqlSession1.getMapper(BrandMapper.class);
PageHelper.startPage(2, 5);
List<Brand> brandList = brandMapper.selectByExample(null);
PageInfo<Brand> pageInfo = new PageInfo<>(brandList, 5);
brandList.forEach(System.out::println);
System.out.println(pageInfo);
} catch (IOException e) {
e.printStackTrace();
}
}
本人其他相關(guān)文章鏈接
1.一袋马、MyBatis簡(jiǎn)介:MyBatis歷史、MyBatis特性袒餐、和其它持久化層技術(shù)對(duì)比飞蛹、Mybatis下載依賴包流程
2.二、搭建MyBatis采用xml方式灸眼,驗(yàn)證CRUD(增刪改查操作)
3.三卧檐、MyBatis核心配置文件詳解
4.四、MyBatis獲取參數(shù)值的兩種方式(重點(diǎn))
5.五焰宣、MyBatis的增刪改查模板(參數(shù)形式包括:String霉囚、對(duì)象、集合匕积、數(shù)組盈罐、Map)
6.六、MyBatis特殊的SQL:模糊查詢闪唆、動(dòng)態(tài)設(shè)置表名盅粪、校驗(yàn)名稱唯一性
7.七、MyBatis自定義映射resultMap
8.八悄蕾、(了解即可)MyBatis懶加載(或者叫延遲加載)
9.九票顾、MyBatis動(dòng)態(tài)SQL
10.十、MyBatis的緩存
11.十一帆调、MyBatis的逆向工程
12.十二奠骄、MyBatis分頁(yè)插件