需要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>
helperDialect=postgresql
reasonable=true
supportMethodsArguments=true
params=count=countSql
autoRuntimeDialect=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',width:80},
{field:'字段名2',title:'标题2',width: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 );
});