一、PageHelper介紹
PageHelper是國內非常優秀的一款開源的mybatis分頁插件,它支持基本主流與常用的數據庫;
二、PaheHelper的使用
1.集成方式:Maven方式
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>最新版本</version> </dependency>
2.配置
1)在spring中配置文件中的sqlSessionFactoryBean的配置中配置攔截器插件
<!--配置sqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!--傳入PageHelper插件,分頁插件--> <property name="plugins"> <array> <!--傳入插件對象--> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <props> <prop key="helperDialect">oracle</prop> <prop key="reasonable">true</prop> </props> </property> </bean> </array> </property> </bean>
2)配置介紹
helperDialect:分頁插件會自動檢測當前的數據庫鏈接,自動選擇合適的分頁方式;
reasonable::分頁合理化參數,默認值為 false 。當該參數設置為 true 時, pageNum<=0 時會查詢第一 頁, pageNum>pages (超過總數時),會查詢最后一頁。默認 false 時,直接根據參數進行查詢。
3.基本使用
1) PageHelper.startPage 靜態方法調用
* 在你需要進行分頁的 MyBatis 查詢方法前調用PageHelper.startPage 靜態方法即可,緊 跟在這個方法后的第一個MyBatis 查詢方法會被進行分頁。
//使用PageHelper指定從第幾頁開始,一頁顯示多少個 PageHelper.startPage(1,5); return ordersDao.findAll();
4.使用案例:
1)Service:
public List<Orders> findAll(int page, int size) throws Exception { //使用PageHelper指定從第幾頁開始,一頁顯示多少個 PageHelper.startPage(page,size); return ordersDao.findAll(); }
2) Controller
public ModelAndView findAll(@RequestParam(name="page",required = true,defaultValue = "1") Integer page, @RequestParam(name="size",required = true,defaultValue = "4") Integer size) throws Exception { ModelAndView mv=new ModelAndView(); List<Orders> orderList =ordersService.findAll(page,size); //PageInfo分頁管理的bean PageInfo pageInfo=new PageInfo(orderList); mv.addObject("pageInfo",pageInfo); mv.setViewName("orders-list"); return mv; }
3) 去頁面設置相應的分頁參數。