日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pagehelper插件oracle,带你学习最简单的分页插件PageHelper

發(fā)布時間:2025/3/12 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pagehelper插件oracle,带你学习最简单的分页插件PageHelper 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引言:

PageHelper是國內(nèi)非常優(yōu)秀的一款開源的mybatis分頁插件,它支持基本主流與常用的數(shù)據(jù)庫, 例如mysql、 oracle、mariaDB、 DB2、 SQLite、Hsqldb等。今天墨白就給大家聊聊PageHelper這款分頁插件,下面是PageHelper開源地址,感興趣的小伙伴可以去看一下

PageHelper在 github 的項目地址:

1https://github.com/pagehelper/Mybatis-PageHelper

PageHelper在 gitosc 的項目地址:

1 http://git.oschina.net/free/Mybatis_PageHelper>

先介紹一下這款插件PageHelper

官網(wǎng)地址:

1https://pagehelper.github.io/

訪問官網(wǎng)后的頁面,官網(wǎng)里面有詳細的Demo,今天我們來照著官網(wǎng)自己動手敲個Demo;

如何使用PageHelper?

1.在自己的項目添加依賴,maven項目在父工程添加最新版本,最新版本是5.1.8

1

2 com.github.pagehelper

3 pagehelper

4 5.1.8

5

2.在數(shù)據(jù)訪問層Spring 配置文件中配置攔截器插件,代碼如下

1

2

3

4

5

6

7

8

9 helperDialect=mysql

10 reasonable=true

11

12

13

14

15

16

3.PageHelper分頁插件參數(shù)介紹

這里我只介紹兩個常用的,詳細的可以去看官網(wǎng)API文檔

helperDialect:

分頁插件會自動檢測當前的數(shù)據(jù)庫鏈接,自動選擇合適的分頁方式。 你可以配置helperDialect屬性來指定分頁插件使用哪種方言。配置時,可以使用下面的縮寫值

1oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby

特別注意:使用 SqlServer2012 數(shù)據(jù)庫時,需要手動指定為 sqlserver2012,否則會使用 SqlServer2005 的方式進行分頁。你也可以實現(xiàn) AbstractHelperDialect,然后配置該屬性為實現(xiàn)類的全限定名稱即可使用自定義的實現(xiàn)方法。

reasonable:

分頁合理化參數(shù),默認值為false。當該參數(shù)設置為 true 時,pageNum<=0 時會查詢第一頁, pageNum>pages(超過總數(shù)時),會查詢最后一頁。默認false 時,直接根據(jù)參數(shù)進行查詢。

4.在代碼中使用的兩種方式:

第一種

1// 此語句后的第一個select查詢自動會被分頁

2PageHelper.startPage(1, 10);

3// 這里的查詢會自動分頁

4List list = countryMapper.selectIf(1);

第二種

1//獲取第1頁,10條內(nèi)容,默認查詢總數(shù)count

2PageHelper.startPage(1, 10);

3List list = countryMapper.selectAll();

4//用PageInfo對結(jié)果進行包裝

5PageInfo page = new PageInfo(list);

6//測試PageInfo全部屬性

7//PageInfo源碼中可以看到包含了非常全面的分頁屬性

8assertEquals(1, page.getPageNum());

9assertEquals(10, page.getPageSize());

10assertEquals(1, page.getStartRow());

11assertEquals(10, page.getEndRow());

12assertEquals(183, page.getTotal());

13assertEquals(19, page.getPages());

14assertEquals(1, page.getFirstPage());

15assertEquals(8, page.getLastPage());

16assertEquals(true, page.isFirstPage());

17assertEquals(false, page.isLastPage());

18assertEquals(false, page.isHasPreviousPage());

19assertEquals(true, page.isHasNextPage());

使用PageHelper

配置好了上面的坐標和Spring配置文件以后,我們直接開始使用PageHelper,每個人的表數(shù)據(jù)可能都不一樣,大家根據(jù)需求自己來玩,代碼如下

Mapper接口

1/**

2 * CompanyMapper接口

3*/

4public interface CompanyMapper {

5 //查詢?nèi)?/p>

6 List findAll();

7}

Mapper映射

1

2

3 select * from ss_company where companyId=#{companyId}

4

Service接口

1public interface CompanyService {

2 // 分頁查詢

3 PageInfo findByPage(int pageNum, int PageSize);

4 //查詢所有

5 List findAll();

6}

impl實現(xiàn)

1 // 注入Mapper

2 @Autowired

3 private CompanyMapper companyMapper;

4

5@Override

6public PageInfo findByPage(int pageNum, int pageSize) {

7 // 開始分頁, PageHelper組件會自動對其后的第一條查詢查詢分頁

8 PageHelper.startPage(pageNum,pageSize);

9 // 調(diào)用dao查詢

10 List list = companyMapper.findAll();

11 // 創(chuàng)建PageInfo對象封裝分頁結(jié)果,傳入查詢集合。會自動計算分頁參數(shù)

12 PageInfo pageInfo = new PageInfo<>(list);

13 return pageInfo;

14}

單元測試

1@RunWith(SpringJUnit4ClassRunner.class)

2@ContextConfiguration("classpath*:spring/applicationContext-*.xml")

3public class UserServiceImplTest {

4 // 注入service

5 @Autowired

6 private CompanyService companyMapper;

7

8 @Test

9 public void findByPage(){

10 PageInfo pageInfo = companyMapper.findByPage(1, 2);

11 System.out.println(pageInfo);

12 }

13}

測試結(jié)果:

控制器:每個人的Controller都不一樣,我這里給個模板你們,不明白的可以在后臺留言,或者是在群里提問,

僅作參考:

1 @Autowired

2 private CompanyService companyService;

3

4 @RequestMapping("/***")

5 public ModelAndView findByPage(

6 @RequestParam(defaultValue = "1") int pageNum,

7 @RequestParam(defaultValue = "5") int pageSize) {

8

9 ModelAndView mv = new ModelAndView();

10 mv.addObject("pageInfo",pageInfo);

11 mv.setViewName("詳情列表");

12 return mv;

13 }

14}

今天的內(nèi)容就到這里了,加油!!!明天見

本文由公眾號【框架師 ,ID:mohu121】首發(fā),轉(zhuǎn)載請注明出處

總結(jié)

以上是生活随笔為你收集整理的pagehelper插件oracle,带你学习最简单的分页插件PageHelper的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。