博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【JAVA秒会技术之玩转高效分页】EasyUI + PageHelper实现分页
阅读量:5818 次
发布时间:2019-06-18

本文共 1898 字,大约阅读时间需要 6 分钟。

 EasyUI + PageHelper实现分页

一、EasyUI页面分页

页面逻辑:页面初始化时,通过jquery easyui的DataGrid(数据表格)url属性异步加载,返回指定的json格式数据,在通过pagination属性,展示分页工具栏。

 

表现层分析

请求URL:/XXX/list

请求参数:Integer pageInteger rowseasyui分页控件请求的参数),其中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目前支OracleMysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。

分页原理

 

使用方法

第一步:dao层的pom文件中添加pagehelper依赖

com.github.pagehelper
pagehelper
1.0

第二步:在Mybatis配置SqlMapConfig.xml中配置拦截器插件

第三步:将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
list = mapper.selectByExample(example); // 3.获取分页查询后的数据 PageInfo
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时需要显示设置,单位是毫秒

 

 

你可能感兴趣的文章
Android图片添加水印图片并把图片保存到文件存储
查看>>
比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第二部分:代码实现(C语言)...
查看>>
海贼王十大悲催人物
查看>>
BigDecimal 舍入模式(Rounding mode)介绍
查看>>
开源 免费 java CMS - FreeCMS1.2-标签 infoSign
查看>>
开源 免费 java CMS - FreeCMS1.9 移动APP生成栏目列表数据
查看>>
虚拟机新增加硬盘,不用重启读到新加的硬盘
查看>>
Java IO流详尽解析
查看>>
邮件服务系列之四基于虚拟用户的虚拟域的邮件系统(安装courier-authlib以及部分配置方法)...
查看>>
Linux VSFTP服务器
查看>>
DHCP中继数据包互联网周游记
查看>>
Squid 反向代理服务器配置
查看>>
Java I/O操作
查看>>
Tomcat性能调优
查看>>
项目管理心得
查看>>
Android自学--一篇文章基本掌握所有的常用View组件
查看>>
灰度图像和彩色图像
查看>>
通过vb.net 和NPOI实现对excel的读操作
查看>>
TCP segmentation offload
查看>>
java数据类型
查看>>