PageHelper分页
一、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) 去页面设置相应的分页参数。