传统分页(mysql和redis)
时间:2019-09-17
本文章向大家介绍传统分页(mysql和redis),主要包括传统分页(mysql和redis)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
分页
Mysql
前端
<%--分页--%>
<div id="page" class="page_div">aaaa</div>
<script src="/testServlet_war/js/jquery.min.js"></script>
<script type="text/javascript" src="/testServlet_war/js/paging.js"></script>
<script>
//分页
$("#page").paging({
pageNo:${pageBean.currentPage},
totalPage: ${pageBean.totolPage},
totalSize: ${pageBean.totolCount},
callback: function(num) {
$(window).attr('location',"/testServlet_war/UserListServlet?currentPage="+num)
}
});
</script>
后端
pojo:PageBean(get和set以及toString方法省略)
public class PageBean {
//当前是哪一页
private Integer currentPage;
//共多少页
private Integer totolPage;
//共多少记录
private Integer totolCount;
//当前页用户
private List<T> list = new ArrayList<>();
}
Controller层
转发servlet(获取数据转发到index)
//获取页码
String currentPage = req.getParameter("currentPage");
//把页码给业务层,根据页码给我一个pagebean
PageBean pageBean=userService.getPageBean(Integer.parseInt(currentPage.trim()));
//把pageBean写到request里面
req.setAttribute("pageBean",pageBean);
//转发到分页页面
req.getRequestDispatcher("/index.jsp").forward(req,resp);
请求servlet(登录servlet)
//重定向到转发servlet
resp.sendRedirect("/项目名/转发servlet?currentPage=1");
Service
public PageBean getPageBean(Integer currentPage) throws SQLException {
PageBean<User> pageBean = new PageBean<User>();
//设置当前页
pageBean.setCurrentPage(currentPage);
//获取总记录数
//从数据库里面查询
Long count = userDao.getCount();
//设置总记录数
pageBean.setTotolCount(count.intValue());
//一页展示多少数据
Integer pageCount = 5;
//总页数
double totolPage = Math.ceil(1.0 * count / pageCount);
pageBean.setTotolPage((int)totolPage);
//当前页的角标,根据limit(index,pageCount)查当前页数据
Integer index = (currentPage-1)*pageCount;
List<User> pageData = userDao.getPageData(index,pageCount);
//设置当前页数据
pageBean.setUserslist(pageData);
return pageBean;
}
Dao层
public Long getCount() throws SQLException {
String sql = "select count(*) from user";
Long count = (Long) qr.query(sql, new ScalarHandler<>());
return count;
}
public List<User> getPageData(Integer index, Integer pageCount) throws SQLException {
String sql = "select * from user limit ?,?";
List<User> pageUser = qr.query(sql, new BeanListHandler<User>(User.class), index, pageCount);
return pageUser;
}
redis
//分页
//全部学生数据
List<Student> students = new ArrayList<>();
PageBean<User> pageBean = new PageBean<User>();
//获取页码
String currentPage = req.getParameter("currentPage");
//设置当前页
pageBean.setCurrentPage(Integer.parseInt(currentPage.trim()));
//设置总记录数
int size = students.size();
pageBean.setTotolCount(size);
//设置总页数
//一页展示多少条数据
Integer pageCount=10;
double totolPage = Math.ceil(1.0 * size / pageCount);
pageBean.setTotolPage((int)totolPage);
//设置当前页数据
//每页的起始索引
int pageNo=(Integer.parseInt(currentPage)-1)*pageCount;
//每页的数据
List<Student> currentStudents=new ArrayList<>();
if (pageNo+pageCount > size) {
currentStudents = students.subList(pageNo,size );
}else {
currentStudents=students.subList(pageNo,pageNo+pageCount);
}
pageBean.setStudentList(currentStudents);
//把pageBean写到request里面
req.setAttribute("pageBean",pageBean);
//转发到分页页面
req.getRequestDispatcher("/index.jsp").forward(req,resp);
原文地址:https://www.cnblogs.com/flyduckforever/p/11532288.html
- Basic Calculator 基本计算器-Leetcode
- python yield函数深入浅出理解
- 十分钟搞定 Tensorflow 服务
- datapump跨平台升级迁移的总结 (r8笔记第77天)
- Java中isAssignableFrom()方法与instanceof()方法用法
- 与Ajax同样重要的jQuery(1)
- Java中Class类详解、用法及泛化
- python 函数编程的位置参数、默认参数、关键字参数以及函数的递归
- Java子类的父类和要实现的接口有相同的方法/函数会冲突吗
- Java关键字 Finally执行与break, continue, return等关键字的关系
- #if 和#ifdef的区别
- python高阶函数:map(f,[list]),reduce(f,[list],可选初始值),
- 深入探讨 Java 类加载器
- 斐波那契查找原理详解与实现
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- 【Tomcat源码解析】第一章:如何搭建源码阅读环境
- LD_PRELOAD 后门 | Linux 后门系列
- 如何利用k8s拉取私有仓库镜像
- rsyslog queue队列权威指南
- 用LOL获得BUFF场景来看待Guava之事件总线
- 文件&目录小技巧 | Linux后门系列
- 从0到1开发测试平台(十)后端增加登录token返回
- rsyslog磁盘辅助(Disk-Assisted)模式踩坑记
- Guava字符串的处理
- Phishing
- Guava Cache用法介绍(极简版)
- Linux Netcat 命令——网络工具中的瑞士军刀
- __all__ 是干嘛用的?
- 业务视角谈谈Kafka(第一篇)
- 面试必问:session,cookie和token的区别