這篇文章主要介紹Mybatis分頁插件的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)公司是一家專業(yè)提供威遠(yuǎn)企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都做網(wǎng)站、HTML5、小程序制作等業(yè)務(wù)。10年已為威遠(yuǎn)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
Mybatis分頁插件的實(shí)例詳解
1.前言:
我們知道,在MySQL中,分頁的sql是使用limit來做,如果我們自己寫sql,那分頁肯定是沒有任何問題的。但是一旦model多了起來,復(fù)雜了起來,我們很自然的想到使用mybatis的逆向工程來生成相應(yīng)的po和mapper,但是同時(shí)也會(huì)帶來弊端,比如這里的分頁問題就不好解決了。
可能有人會(huì)說,我可以修改生成的文件,沒錯(cuò),這是可行的,但是一般我們通過逆向工程生成的文件,都不會(huì)去動(dòng)它,所以這個(gè)時(shí)候,就需要使用分頁插件來解決了。
如果你也在用Mybatis,建議嘗試該分頁插件,這個(gè)一定是最方便使用的分頁插件。
該插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六種數(shù)據(jù)庫分頁。
2.使用方法
第一步:在Mybatis配置xml中配置攔截器插件:
<plugins> <!-- com.github.pagehelper為PageHelper類所在包名 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <!-- 設(shè)置數(shù)據(jù)庫類型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六種數(shù)據(jù)庫--> <property name="dialect" value="mysql"/> </plugin> </plugins>
第二步:在代碼中使用
1、設(shè)置分頁信息:
//獲取第1頁,10條內(nèi)容,默認(rèn)查詢總數(shù)count PageHelper.startPage(1, 10); //緊跟著的第一個(gè)select方法會(huì)被分頁 List<Country> list = countryMapper.selectIf(1);
2、取分頁信息
//分頁后,實(shí)際返回的結(jié)果list類型是Page<E>,如果想取出分頁信息,需要強(qiáng)制轉(zhuǎn)換為Page<E>, Page<Country> listCountry = (Page<Country>)list; listCountry.getTotal();
3、取分頁信息的第二種方法
//獲取第1頁,10條內(nèi)容,默認(rèn)查詢總數(shù)count PageHelper.startPage(1, 10); List<Country> list = countryMapper.selectAll(); //用PageInfo對(duì)結(jié)果進(jìn)行包裝 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)建一個(gè)spring容器 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml"); //從spring容器中獲得Mapper的代理對(duì)象 TbItemMapper mapper = applicationContext.getBean(TbItemMapper.class); //執(zhí)行查詢,并分頁 TbItemExample example = new TbItemExample(); //分頁處理 PageHelper.startPage(2, 10); List<TbItem> list = mapper.selectByExample(example); //取商品列表 for (TbItem tbItem : list) { System.out.println(tbItem.getTitle()); } //取分頁信息 PageInfo<TbItem> pageInfo = new PageInfo<>(list); long total = pageInfo.getTotal(); System.out.println("共有商品:"+ total); }
以上是“Mybatis分頁插件的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站題目:Mybatis分頁插件的示例分析
網(wǎng)頁URL:http://jinyejixie.com/article28/podsjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、ChatGPT、定制網(wǎng)站、App設(shè)計(jì)、網(wǎng)站策劃、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)