pagehelper插件oracle,带你学习最简单的分页插件PageHelper
引言:
PageHelper是國內非常優秀的一款開源的mybatis分頁插件,它支持基本主流與常用的數據庫, 例如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
官網地址:
1https://pagehelper.github.io/
訪問官網后的頁面,官網里面有詳細的Demo,今天我們來照著官網自己動手敲個Demo;
如何使用PageHelper?
1.在自己的項目添加依賴,maven項目在父工程添加最新版本,最新版本是5.1.8
1
2 com.github.pagehelper
3 pagehelper
4 5.1.8
5
2.在數據訪問層Spring 配置文件中配置攔截器插件,代碼如下
1
2
3
4
5
6
7
8
9 helperDialect=mysql
10 reasonable=true
11
12
13
14
15
16
3.PageHelper分頁插件參數介紹
這里我只介紹兩個常用的,詳細的可以去看官網API文檔
helperDialect:
分頁插件會自動檢測當前的數據庫鏈接,自動選擇合適的分頁方式。 你可以配置helperDialect屬性來指定分頁插件使用哪種方言。配置時,可以使用下面的縮寫值
1oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby
特別注意:使用 SqlServer2012 數據庫時,需要手動指定為 sqlserver2012,否則會使用 SqlServer2005 的方式進行分頁。你也可以實現 AbstractHelperDialect,然后配置該屬性為實現類的全限定名稱即可使用自定義的實現方法。
reasonable:
分頁合理化參數,默認值為false。當該參數設置為 true 時,pageNum<=0 時會查詢第一頁, pageNum>pages(超過總數時),會查詢最后一頁。默認false 時,直接根據參數進行查詢。
4.在代碼中使用的兩種方式:
第一種
1// 此語句后的第一個select查詢自動會被分頁
2PageHelper.startPage(1, 10);
3// 這里的查詢會自動分頁
4List list = countryMapper.selectIf(1);
第二種
1//獲取第1頁,10條內容,默認查詢總數count
2PageHelper.startPage(1, 10);
3List list = countryMapper.selectAll();
4//用PageInfo對結果進行包裝
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,每個人的表數據可能都不一樣,大家根據需求自己來玩,代碼如下
Mapper接口
1/**
2 * CompanyMapper接口
3*/
4public interface CompanyMapper {
5 //查詢全部
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實現
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 // 調用dao查詢
10 List list = companyMapper.findAll();
11 // 創建PageInfo對象封裝分頁結果,傳入查詢集合。會自動計算分頁參數
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}
測試結果:
控制器:每個人的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}
今天的內容就到這里了,加油!!!明天見
本文由公眾號【框架師 ,ID:mohu121】首發,轉載請注明出處
總結
以上是生活随笔為你收集整理的pagehelper插件oracle,带你学习最简单的分页插件PageHelper的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剩余 大小 查看内存_JVM的内存分配策
- 下一篇: ajax搜索思路,jquery创建一个a