Mybatis分页插件-PageHelper的使用
2017-09-15 15:05
736 查看
转载:http://blog.csdn.net/u012728960/article/details/50791343
Mybatis分页插件-PageHelper的使用
怎样配置mybatis这里就不提了,我来说说我配置这个分页插件的过程吧。下载JAR包
分页插件pagehelper.jar:
https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/
http://repo1.maven.org/maven2/com/github/pagehelper/pagehelper/
由于使用了sql解析工具,你还需要下载jsqlparser.jar
4.1.0及以后版本需要0.9.4版本
http://repo1.maven.org/maven2/com/github/jsqlparser/jsqlparser/0.9.4/
4.1.0以前版本需要0.9.1版本
http://repo1.maven.org/maven2/com/github/jsqlparser/jsqlparser/0.9.1/
一、首先,在
spring-mybatis.xml中是这样配置:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:com/sinyat/api/weather/mapping/*.xml" /> <property name="typeAliasesPackage" value="com.sinyat.api.weather.model" /> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageHelper"> <property name="properties"> <value> dialect=mysql </value> </property> </bean> </array> </property> </bean>
我是在spring里配置的,还可以在
mybatis-config.xml里配置,有兴趣的话可以百度下。
二、需要分页,自然就还要一个查询了。用了PageHelper之后,查询语句就可以很简单了。
<select id="selectAll" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from citylist </select>
这是我的查询语句,查询城市列表。没有其他条件,就是查所有。当然,我这只是一个小的demo,没做那么麻烦,真正的使用,是需要条件查询的。
现在来讲讲用了PageHelper之后的好处:
那就是查询语句可以不用limit,但是就一点好处吗?自然不是。请接着往下看。
三、接口、实现类我就不再贴代码了,该怎么写还是怎么写,不需要传分页参数。然后是Controller:
@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,仅仅只是一个非常简单的分页效果。
PageHelper.startPage(page, pageSize);
这段代码表示,程序开始分页了,page默认值是1,pageSize默认是10,意思是从第1页开始,每页显示10条记录。
PageInfo这个类是插件里的类,这个类里面的属性还是值得看一看:
//当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int size; //排序 private String orderBy; //由于startRow和endRow不常用,这里说个具体的用法 //可以在页面中"显示startRow到endRow 共size条数据" //当前页面第一个元素在数据库中的行号 private int startRow; //当前页面最后一个元素在数据库中的行号 private int endRow; //总记录数 private long total; //总页数 private int pages; //结果集 private List<T> list; //第一页 private int firstPage; //前一页 private int prePage; //下一页 private int nextPage; //最后一页 private int lastPage; //是否为第一页 private boolean isFirstPage = false; //是否为最后一页 private boolean isLastPage = false; //是否有前一页 private boolean hasPreviousPage = false; //是否有下一页 private boolean hasNextPage = false; //导航页码数 private int navigatePages; //所有导航页号 private int[] navigatepageNums;
使用PageInfo这个类,你需要将查询出来的list放进去:
PageInfo<CityList> p=new PageInfo<CityList>(list);
然后
mv.addObject("page", p);
这样在页面中就可以通过
${page.nextPage}翻到下一页,
${page.prePage}翻到上一页,
下面这个是因为我没有进行判断,所以,第0页自然是什么都没有的。
判断的话,在PageInfo里有对应的属性,比如:
//是否有前一页 private boolean hasPreviousPage = false; //是否有下一页 private boolean hasNextPage = false;
好了,demo就是这些了。
下一个是通用Mapper,据说也是很不错的东西。
顶
相关文章推荐
- Mybatis 使用分页插件pageHelper、JSqlParser
- (转)淘淘商城系列——MyBatis分页插件(PageHelper)的使用以及商品列表展示
- Mybatis分页插件-PageHelper的使用
- Mybatis 的分页插件PageHelper-4.1.1的使用
- 使用mybatis时选择分页插件PageHelper 5.0.0
- 使用mybatis分页插件PageHelper5.0.0遇到的问题总结
- Mybatis分页插件PageHelper的使用
- mybatis分页插件PageHelper的使用(转)
- Mybatis分页插件PageHelper的使用
- Mybatis的插件 PageHelper 分页查询使用方法
- Spring + Mybatis 使用 PageHelper 插件分页
- Mybatis中分页插件PageHelper的使用
- [Extjs] Ext4 Ext.grid.Panel 分页实现(mybatis 分页插件-PageHelper 使用)
- MyBatis分页插件PageHelper的使用
- Mybatis的插件 PageHelper 分页查询使用方法
- Mybatis的分页插件PageHelper使用及注意事项
- Mybatis分页插件PageHelper的简单使用
- 【MyBatis】MyBatis分页插件PageHelper的使用
- Mybatis分页插件-PageHelper的使用
- Mybatis 的分页插件PageHelper-4.1.1的使用