我们经常用到分页查询数据。
今天我们就实现mybits的物理分页效果。一个插件化的分页---PageHelper
1:添加maven依赖:
- <!-- pagehelper分页插件 -->
- <dependency>
- <groupId>com.github.pagehelper</groupId>
- <artifactId>pagehelper</artifactId>
- <version>5.0.0</version>
- </dependency>
- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <!-- 数据库连接池 -->
- <property name="dataSource" ref="dataSource" />
- <!-- 加载mybatis的全局配置文件 -->
- <!-- <property name="configLocation" value="classpath:sqlMapConfig.xml"
- /> -->
- <!-- 为com.red.packet.po包下的所有实体类配置别名(mybatis 3.2.8以上版本) -->
- <property name="typeAliasesPackage" value="com.red.packet.po" />
- <property name="plugins">
- <array>
- <bean class="com.github.pagehelper.PageInterceptor">
- <property name="properties">
- <value>
- helperDialect=mysql
- </value>
- </property>
- </bean>
- </array>
- </property>
- </bean>
- @RequestMapping("showcity")
- public ModelAndView showCityList(ModelAndView mv,
- @RequestParam(required=true,defaultValue="1") Integer page,
- @RequestParam(required=false,defaultValue="10") Integer pageSize){
- PageHelper.startPage(page, pageSize);
- List<CityList> list = cityListService.selectAll();
- PageInfo<CityList> p=new PageInfo<CityList>(list);
- //System.out.println(p.getList());
- mv.addObject("citylist", list);
- mv.addObject("page", p);
- mv.setViewName("weather/showCityList");
- return mv;
- }
可以看到,方法里有两个参数,前面也说了,这是一个demo,仅仅只是一个非常简单的分页效果。
这段代码表示,程序开始分页了,page默认值是1,pageSize默认是10,意思是从第1页开始,每页显示10条记录。
PageInfo这个类是插件里的类,这个类里面的属性还是值得看一看:
使用PageInfo这个类,你需要将查询出来的list放进去:
然后mv.addObject("page", p);
这样在页面中就可以通过
${page.nextPage}
翻到下一页,
${page.prePage}
翻到上一页,
至此:全文愉快的结束。。。。