需要maven的依赖
<!-- pagehelper :分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> </dependency> <!-- pagehelper的依赖包:jsqlparser --> <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>0.9.5</version> </dependency>
applicationCentext.xml配置:
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:site/gaoyisheng/mapping/*.xml"></property> <!-- 分页插件 pagehelper --> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <!--使用下面的方式配置参数,一行配置一个 --> <value>
dialect=mysql //我用的是mysql
reasonable=true
</value> </property> </bean> </array> </property> </bean>
使用说明
当前页 private int pageNum; 每页的数量 private int pageSize; 当前页的数量 private int size; //由于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 boolean isFirstPage = false; 是否为最后一页 private boolean isLastPage = false; 是否有前一页 private boolean hasPreviousPage = false; 是否有下一页 private boolean hasNextPage = false; 导航页码数 private int navigatePages; 所有导航页号 private int[] navigatepageNums; 后台分页 服务器端 service public PageInfo<T> methodName(int pageNum, int pageSize) { //1 设置分页 PageHelper.startPage(pageNum, pageSize); //2 查询 List<T> list =TMapper.mapperMethod(); //3 返回 return new PageInfo<>(list); } Web public @ResponseBody DataGridResultInfo methodName (Vovo){ //1 查询 PageInfo<T> pageInfo = service. methodName (vo.getPage(), vo.getRows()); //2 封装 return new DataGridBean(pageInfo.getTotal() , pageInfo.getList() ); } 浏览器端 Datagrid $(function(){ //绘制datagrid //1 准备数据 // 1.1 列列表 var columnArr = [[ {field:'字段名1',title:'标题1',80}, {field:'字段名2',title:'标题2',80, formatter:function(value,rows,index){ //filed匹配值(当前的值),当前行,当前行号 return value.info; } } ]]; // 1.2 工具条 var toolbarArr = [ { iconCls: 'icon-add',//按钮图标 text : '添加用户', handler: showadduser//方法名 } ]; // 1.3 请求路径 var url = "……"; //2 准备参数 var options = { "columns":columnArr, "toolbar":toolbarArr, "striped":true, //隔行换色 "idField":"id", //标识字段 "url":url, //请求路径 "pagination":true, "rownumbers":true, "pageSize":2, "pageList":[2,4,6,8] }; //3 绘制 $("#id值").datagrid( options ); });