Mybatis分頁插件的實例詳解
1.前言:
我們知道,在MySQL中,分頁的sql是使用limit來做,如果我們自己寫sql,那分頁肯定是沒有任何問題的。但是一旦model多了起來,復雜了起來,我們很自然的想到使用mybatis的逆向工程來生成相應的po和mapper,但是同時也會帶來弊端,比如這里的分頁問題就不好解決了。
可能有人會說,我可以修改生成的文件,沒錯,這是可行的,但是一般我們通過逆向工程生成的文件,都不會去動它,所以這個時候,就需要使用分頁插件來解決了。
如果你也在用Mybatis,建議嘗試該分頁插件,這個一定是最方便使用的分頁插件。
該插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六種數(shù)據(jù)庫分頁。
2.使用方法
第一步:在Mybatis配置xml中配置攔截器插件:
plugins>
!-- com.github.pagehelper為PageHelper類所在包名 -->
plugin interceptor="com.github.pagehelper.PageHelper">
!-- 設置數(shù)據(jù)庫類型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六種數(shù)據(jù)庫-->
property name="dialect" value="mysql"/>
/plugin>
/plugins>
第二步:在代碼中使用
1、設置分頁信息:
//獲取第1頁,10條內(nèi)容,默認查詢總數(shù)count
PageHelper.startPage(1, 10);
//緊跟著的第一個select方法會被分頁
ListCountry> list = countryMapper.selectIf(1);
2、取分頁信息
//分頁后,實際返回的結(jié)果list類型是PageE>,如果想取出分頁信息,需要強制轉(zhuǎn)換為PageE>,
PageCountry> listCountry = (PageCountry>)list;
listCountry.getTotal();
3、取分頁信息的第二種方法
//獲取第1頁,10條內(nèi)容,默認查詢總數(shù)count
PageHelper.startPage(1, 10);
ListCountry> list = countryMapper.selectAll();
//用PageInfo對結(jié)果進行包裝
PageInfo page = new PageInfo(list);
//測試PageInfo全部屬性
//PageInfo包含了非常全面的分頁屬性
assertEquals(1, page.getPageNum());
assertEquals(10, page.getPageSize());
assertEquals(1, page.getStartRow());
assertEquals(10, page.getEndRow());
assertEquals(183, page.getTotal());
assertEquals(19, page.getPages());
assertEquals(1, page.getFirstPage());
assertEquals(8, page.getLastPage());
assertEquals(true, page.isFirstPage());
assertEquals(false, page.isLastPage());
assertEquals(false, page.isHasPreviousPage());
assertEquals(true, page.isHasNextPage());
3.TestPageHelper
@Test
public void testPageHelper() {
//創(chuàng)建一個spring容器
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
//從spring容器中獲得Mapper的代理對象
TbItemMapper mapper = applicationContext.getBean(TbItemMapper.class);
//執(zhí)行查詢,并分頁
TbItemExample example = new TbItemExample();
//分頁處理
PageHelper.startPage(2, 10);
ListTbItem> list = mapper.selectByExample(example);
//取商品列表
for (TbItem tbItem : list) {
System.out.println(tbItem.getTitle());
}
//取分頁信息
PageInfoTbItem> pageInfo = new PageInfo>(list);
long total = pageInfo.getTotal();
System.out.println("共有商品:"+ total);
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
您可能感興趣的文章:- mybatis分頁插件pageHelper詳解及簡單實例
- Spring mvc整合mybatis(crud+分頁插件)操作mysql
- spring boot和mybatis集成分頁插件
- Mybatis分頁插件PageHelper的使用詳解
- 自己動手寫的mybatis分頁插件(極其簡單好用)
- Mybatis常用分頁插件實現(xiàn)快速分頁處理技巧
- Mybatis全面分頁插件
- Java簡單實現(xiàn)SpringMVC+MyBatis分頁插件