【JAVA秒会技术之玩转高效分页】EasyUI + PageHelper实现分页
2016-12-02 16:16
676 查看
EasyUI + PageHelper实现分页
一、EasyUI页面分页
页面逻辑:页面初始化时,通过jquery easyui的DataGrid(数据表格)的url属性异步加载,返回指定的json格式数据,在通过pagination属性,展示分页工具栏。
表现层分析:
请求URL:/XXX/list
请求参数:Integer page、Integer rows(easyui分页控件请求的参数),其中page默认为1。
返回数据:json格式的数据(easyui分页控件请求的返回值JSON数据),格式如下:
业务逻辑分析:
根据page和rows分页查询条件,使用分页插件PageHelper进行分页查询。
将商品列表和记录总数封装到PO类对象中,并且将其转化为Json格式返回。
二、PageHelper数据库分页
mybatis分页插件PageHelper目前支Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。
分页原理:
使用方法:
第一步:dao层的pom文件中添加pagehelper依赖;
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>1.0</version>
</dependency>
第二步:在Mybatis配置SqlMapConfig.xml中配置拦截器插件;
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 设置数据库方言 -->
<property name="dialect" value="mysql" />
</plugin>
</plugins>
第三步:将Json对应的数据格式封装成POJO类DatagridResult并实现序列化接口;
public class DatagridResult implements Serializable{
private long total;// 记录总数
private List rows; // 记录集合
}
第五步:开发Service层,主要逻辑:Ø 第四步:开发Dao层,使用逆向工程生成代码;
@Override
public DatagridResult queryItemList(Integer page, Integer rows) {
if (page == null)
page = 1;
if (rows == null)
rows = 30;
// 1.设置分页信息
PageHelper.startPage(page, rows);
// 2.执行查询
TbItemExample example = new TbItemExample();
List<TbItem> list = mapper.selectByExample(example);
// 3.获取分页查询后的数据
PageInfo<TbItem> pageInfo = new PageInfo<>(list);
// 4.封装结果对象,并返回
DatagridResult result = new DatagridResult();
result.setTotal(pageInfo.getTotal()); //设置总记录数
result.setRows(list); //设置每页展示数据集合
return result;
}
第六步:开发Controller层,主要逻辑:
@RequestMapping("/list")
@ResponseBody
public DatagridResult list(@RequestParam(defaultValue= "1") Integer page, Integer rows) {
return service.queryItemList(page, rows);
}
三、超时及警告问题解决
原因:通过分页插件得到的结果,其实是List的子类Page(该类由分页插件提供),而该类只在服务层,表现层没有该类,在反序列化的时候,抛出该警告,不影响使用。
发布服务时,服务默认的响应时间为1秒,debug时需要显示设置,单位是毫秒
一、EasyUI页面分页
页面逻辑:页面初始化时,通过jquery easyui的DataGrid(数据表格)的url属性异步加载,返回指定的json格式数据,在通过pagination属性,展示分页工具栏。
表现层分析:
请求URL:/XXX/list
请求参数:Integer page、Integer rows(easyui分页控件请求的参数),其中page默认为1。
返回数据:json格式的数据(easyui分页控件请求的返回值JSON数据),格式如下:
{total:“2”,rows:[ {“id”:”1”,”name”:”张三”}, {“id”:”2”,”name”:”李四”} ]} ==> 再将Json对应的数据格式封装成POJO类DatagridResult。 |
根据page和rows分页查询条件,使用分页插件PageHelper进行分页查询。
将商品列表和记录总数封装到PO类对象中,并且将其转化为Json格式返回。
二、PageHelper数据库分页
mybatis分页插件PageHelper目前支Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。
分页原理:
使用方法:
第一步:dao层的pom文件中添加pagehelper依赖;
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>1.0</version>
</dependency>
第二步:在Mybatis配置SqlMapConfig.xml中配置拦截器插件;
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 设置数据库方言 -->
<property name="dialect" value="mysql" />
</plugin>
</plugins>
第三步:将Json对应的数据格式封装成POJO类DatagridResult并实现序列化接口;
public class DatagridResult implements Serializable{
private long total;// 记录总数
private List rows; // 记录集合
}
第五步:开发Service层,主要逻辑:Ø 第四步:开发Dao层,使用逆向工程生成代码;
@Override
public DatagridResult queryItemList(Integer page, Integer rows) {
if (page == null)
page = 1;
if (rows == null)
rows = 30;
// 1.设置分页信息
PageHelper.startPage(page, rows);
// 2.执行查询
TbItemExample example = new TbItemExample();
List<TbItem> list = mapper.selectByExample(example);
// 3.获取分页查询后的数据
PageInfo<TbItem> pageInfo = new PageInfo<>(list);
// 4.封装结果对象,并返回
DatagridResult result = new DatagridResult();
result.setTotal(pageInfo.getTotal()); //设置总记录数
result.setRows(list); //设置每页展示数据集合
return result;
}
第六步:开发Controller层,主要逻辑:
@RequestMapping("/list")
@ResponseBody
public DatagridResult list(@RequestParam(defaultValue= "1") Integer page, Integer rows) {
return service.queryItemList(page, rows);
}
三、超时及警告问题解决
原因:通过分页插件得到的结果,其实是List的子类Page(该类由分页插件提供),而该类只在服务层,表现层没有该类,在反序列化的时候,抛出该警告,不影响使用。
发布服务时,服务默认的响应时间为1秒,debug时需要显示设置,单位是毫秒
相关文章推荐
- java分页的实现,插件PageHelper的使用及原理
- SSM+easyUI结合Mybatis-PageHelper实现分页功能
- Mybatis学习(4):Mybatis及PageHelper插件和easyUI实现分页
- SSM框架中集成TKMybatis+PageHelper实现高效查询和分页
- mybatis使用PageHelper实现分页的技术
- mybatis使用PageHelper实现分页的技术
- mybatis(pagehelper) dataTables实现分页功能
- 分页技术原理与实现(二)——Java+Oracle代码实现
- pageHelper实现分页
- [Extjs] Ext4 Ext.grid.Panel 分页实现(mybatis 分页插件-PageHelper 使用)
- PageHelper+Bootstrap Paginator实现分页效果
- mybatis实现分页插件PageHelper
- 实现Javawb分页技术
- 使用easyUi技术的datagrid组件实现条件分页
- 【JAVA秒会技术之玩转图片】图片下载和等比或指定大小压缩快速实现
- Mybatis分页插件PageHelper实现自动分页
- 原创:仿Baidu,Google查询分页技术JAVA实现
- 分页技术原理与实现(二)——Java+Oracle代码实现
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第四篇:前台首页,新闻分类(体育新闻,科技新闻等),新闻列表分页的实现
- java分页技术核心代码实现