今天学习了一款非常优秀的Mybatis分页插件;
一.配置mybaits的PageHelper插件有两种方式:
1.SSM整合中 mybaits配置已经集成到了spring的配置文件中,所以配置SpringSessionFactory时候可以指定插件:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!--数据源--><property name="dataSource" ref="dataSource"></property><!--mybatis的其他配置 --><property name="plugins"><array><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><props><!-- 分页的相关配置参数 详细参数解析见附录 --><prop key="helperDialect">oracle</prop></props></property></bean></array></property></bean>
2.配置一个mybaits的SqlMapConfig.xml
<configuration><plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"/></plugins></configuration>
好处是:不需要指定数据库方言了,mybatis会自动选择;
二.PageHelper的API解析
public PageInfo<Product> findByPageHelper(Integer currPage, Integer pageSize) {//开始分页PageHelper.startPage(currPage, pageSize);//查询全部List<Product> productList = productDao.findAll();//创建PageInfo对象PageInfo<Product> pageInfo = new PageInfo<>(productList, 5);return pageInfo;
}
三.
pageInfo是PageHelper定义的实体类,成员属性:
pageInfo.getPageNum():当前页
pageInfo.getPageSize():每页条数
pageInfo.getPages():总页数
pageInfo.getTotal():总条数
pageInfo.getList():数据
pageInfo.getPrePage():上一页
pageInfo.getNextPage():下一页
pageInfo.isIsFirstPage():是否第一页
pageInfo.isIsLastPage():是否最后一页
pageInfo.getNavigateFirstPage():展示的第一个页面
pageInfo..getNavigateLastPage():展示的最后一个页码
需要注意的是关与select中option子标签的设置
option有一个属性:selected:
selected属性:规定在页面加载时预先选定该选项,被预选的选项会显示在下拉列表的最前面的位置,
也可以在页面加载后通过Js设置selected;
当selected="selected"或者selected="true"当前的option就会默认在刷新后显示最前面称为select的value值;
实例:
<%--默认选中每页条数--%>
$("#pageSize option[value=${pageInfo.pageSize}]").prop("selected","selected");
因为没有加这个在分页中每次刷新每页多少条数的select的value就默认变成2,下次切记这个错误,勿犯!