分页的快捷方式
来源:互联网 发布:男士双肩背包推荐 知乎 编辑:程序博客网 时间:2024/06/16 12:00
1.1 分页插件
1.1.1 原理
1.1.2 使用方法
插件叫做PageHelper如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。
该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。
使用方法:
第一步:需要在SqlMapConfig.xml,配置一个plugin。
第二步:在sql语句执行之前,添加一个PageHelper.startPage(page,rows);
第三步:取分页结果。创建一个PageInfo对象需要参数,查询结果返回的list。从PageInfo对象中取分页结果。
1.1.2.1 添加jar包到工程中
1.1.2.2 修改SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置分页插件 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 指定使用的数据库是什么 -->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
</configuration>
1.1.2.3 代码测试
public class TestPageHelper {
@Test
public void testPageHelper()throws Exception {
//1、获得mapper代理对象
ApplicationContext applicationContext =new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
TbItemMapper itemMapper = applicationContext.getBean(TbItemMapper.class);
//2、设置分页
PageHelper.startPage(1, 30);
//3、执行查询
TbItemExample example = new TbItemExample();
List<TbItem> list = itemMapper.selectByExample(example);
//4、取分页后结果
PageInfo<TbItem> pageInfo = new PageInfo<>(list);
long total =pageInfo.getTotal();
System.out.println("total:" +total);
int pages =pageInfo.getPages();
System.out.println("pages:" +pages);
int pageSize =pageInfo.getPageSize();
System.out.println("pageSize:" +pageSize);
}
}
1.2 展示商品列表
1.2.1 页面分析
请求的url:
Ajax请求。
请求的参数:http://localhost:8080/item/list?page=1&rows=30
响应的数据:json数据。
包含total、rows两个属性:
Total:查询结果的总记录数
Rows:集合,包含显示的所有数据。其中集合中每个元素的key应该和dategrid的field对应。
Easyui中datagrid控件要求的数据格式为:
{total:”2”,rows:[{“id”:”1”,”name”,”张三”},{“id”:”2”,”name”,”李四”}]}
1.2.2 Dao层
可以使用逆向工程生成的代码
1.2.3 Service层
参数:page(显示的页码)、rows(每页显示的记录数)
返回值:创建一个pojo表示返回值。应该包含total、rows两个属性。
应该放到taotao-common工程中,和其他系统共用。
public class EasyUIDataGridResult {
private long total;
private List<?> rows;
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total =total;
}
public List<?> getRows() {
return rows;
}
public void setRows(List<?>rows) {
this.rows =rows;
}
}
@Override
public EasyUIDataGridResult getItemList(int page,int rows) {
//分页处理
PageHelper.startPage(page, rows);
//执行查询
TbItemExample example = new TbItemExample();
List<TbItem> list = itemMapper.selectByExample(example);
//取分页信息
PageInfo<TbItem> pageInfo = new PageInfo<>(list);
//返回处理结果
EasyUIDataGridResult result = new EasyUIDataGridResult();
result.setTotal(pageInfo.getTotal());
result.setRows(list);
return result;
}
1.2.4 Controller
接收两个参数:page、rows
调用Service查询商品列表。
返回:EasyUIDataGridResult(json数据),需要使用@ResponseBody
@RequestMapping("/item/list")
@ResponseBody
public EasyUIDataGridResult getItemList(Integerpage, Integerrows) {
EasyUIDataGridResult result = itemService.getItemList(page,rows);
return result;
}
- 分页的快捷方式
- 快捷方式的函数
- jbuilder2005的快捷方式
- jbuilder2005的快捷方式
- jbuilder2005的快捷方式
- jbuilder2005的快捷方式
- jbuilder2005的快捷方式
- VS.NET的快捷方式
- 白领饮食的快捷方式
- 控制面板的快捷方式
- 应用程序快捷方式的安全隐患
- Gmail的隐藏快捷方式
- Eclipse的快捷方式
- 我的word 快捷方式
- 調用存儲過程的快捷方式
- myeclipse的快捷方式
- 桌面快捷方式的做成
- vs2005的快捷方式
- Storm初识
- python学习笔记(十三)标准库heapq
- TF-day1 MINIST识别数字
- 单点登录-CAS介绍
- IO流学习小结
- 分页的快捷方式
- 【JS】【个人学习小记】输出当天为星期几的快速方法
- react 如何获取节点内容
- CCS中如何新建Platform以及调用
- 低功耗蓝牙cc2541学习笔记之UART-3-协议栈uart发送 实验
- 分享一个Linux性能调优/诊断网站
- linux下进程间通信之管道
- 【Java集合】LinkedHashMap
- 图像与原始字节之间的转换