JavaWeb(分页)
1.分页显示的步骤:
(1)确定每页显示的数据量
(2)计算显示的页码
(3)编写SQL语句
当数据多起来的时候 ,记得需要一个容器将它包装起来,所以大容量数据显示可以派上用场(这只是其中一种方式)
2.大容量数据显示特点:
(1)以列表方式显示数据的特点
优势:数据能够按照指定格式显示,布局清晰
不受信息数量的限制
缺点:当数据量较多,页面显示不完全时,需要用户拖动页面才能浏览更多信息
那么大容量数据显示会降低用户体验度,有没有更好的方式呢?
这就得采用到分页实现批量数据的页面显示
分页显示在生活中随处可见
《如图所示》
实现分页的步骤:
(1)获取总记录
(2)根据每页显示的记录与总记录计算总页数
《代码演示》
(count%pageSize ==0)?(count/pageSize):(count/pageSize+1);计算分页页码
public int getTotalPages(int count, int pageSize){int totalpages =0; totalpages =(count%pageSize ==0)?(count/pageSize):(count/pageSize+1);return totalpages; }
--分页的sql语句
--伪列:rownum 不能作用于大于符号以及between..and 把伪列-->明列(实列)=取别名--以emp表为例
--假设每页5条记录
--取第一页select * from(select a.*,rownum as rid from emp a where ename like '%a%' ) b where b.rid between 5 and 10
《代码演示》
提示:sql语句是先排序后编号 在需要分页的界面调用如下方法即可
public List<News> getPage(int pageIndex,int pageSize){List<News> ls = new ArrayList<News>();int a = (pageIndex-1)*pageSize+1;int b = pageIndex*pageSize;try {//jdbc连接数据库con = DBHelper.getCon();//定义sql 语句String sql = "select * from (\r\n" + "select a.*,rownum as rid from(\r\n" + " select nid,ntitle,nauthor from tb_news order by nid desc\r\n" + ")a\r\n" + ")b where b.rid between ? and ?";//获得执行对象ps=con.prepareStatement(sql);//给占位符赋值ps.setInt(1, a);ps.setInt(2, b);//获得结果集rs = ps.executeQuery();} catch (Exception e) {e.printStackTrace();}finally {DBHelper.myClose(con, ps, rs);}return ls;}
《获取当前页码》
思路:获取显示页的页码
如果获取的页码为NULL,则设置当前页为首页
如果获取的页码不为NULL,则该页码即为当前页页码
《代码演示》
String currentPage = request.getParameter("pageIndex");//读取页码 //判断页码 if(currentPage == null){currentPage = "1"; } int pageIndex = Integer.parseInt(currentPage); //将当前页码赋值给变量进行后续的出传递
《分页的设置》
根据已确认的当前页,设置上页和下页
根据总页数设置首页和末页
《如图所示》
《 首页和末页的控制》
通过判断pageIndex变量实现首页末页的控制
String currentPage = request.getParameter("pageIndex"); if(currentPage == null){currentPage = "1"; } int pageIndex = Integer.parseInt(currentPage); //对首页与末页进行控制 if(pageIndex < 1){pageIndex = 1; }else if(pageIndex > totalpages){pageIndex = totalpages; }
《 带模糊查询的分页》
@param pageIndex 第几页
@param pageSize 每页多少条记录
@param title 关键字
@return 新闻的集合public List<News> getPage(int pageIndex,int pageSize,String title){List<News> ls = new ArrayList<News>();int a = (pageIndex-1)*pageSize+1;int b = pageIndex*pageSize;try {//jdbc连接数据库con = DBHelper.getCon();//定义sql 语句String sql = "select * from (\r\n" + "select a.*,rownum as rid from(\r\n" + " select nid,ntitle,nauthor from tb_news where ntitle like '%"+title+"%' order by nid desc\r\n" + ")a\r\n" + ")b where b.rid between 5 and 10\r\n" + "";//获得执行对象ps=con.prepareStatement(sql);//给占位符赋值ps.setInt(1, a);ps.setInt(2, b);//获得结果集rs = ps.executeQuery();} catch (Exception e) {e.printStackTrace();}finally {DBHelper.myClose(con, ps, rs);}return ls;}
调用方法即可
《如图所示》
提示:此处一定要加上title,不然title就会为空值,因为title返回的是查询全部
JavaWeb(分页)相关推荐
- Javaweb分页技术实现
Javaweb分页技术实现 分页技术就是通过SQL语句(如下)来获取数据,具体实现看下面代码 //分页查询语句 select * from 表名 where limit page , count; 和 ...
- javaweb分页的后端实现
先上demo图 servlet实现部分: package servlet;import java.io.IOException; import java.util.List;import javax. ...
- javaweb分页查询oracle,JavaWeb项目 利用Oracle数据库实现分页查看细讲
一.了解数据库指令 Oracle数据库相对于MySQL数据库来说,要实现分页查看,Oracle中没有像MySQL里的limit命令,使用的Oracle语句也比较复杂 select * from (se ...
- java 分页原理_关于javaweb分页原理
分页分为两种分页,一是数据库分页.二是,java程序分页,这两种的其别的,数据库分页可以操作大量数据.而java程序分页只能操作小量数据,因此,在大多数情况下我们都用数据库分页,SQL我用top进行分 ...
- Ajax与JavaWeb分页
Ajax Ajax:Ajax 是与服务器交换数据的艺术,它在不重载全部页面的情况下,实现了对部分网页的更新 Ajax:Asynchronous JavaScript and XML,异步 javasc ...
- javaweb 分页代码
dao方法: package com.ruojuan.Dao; import java.sql.Connection; import java.sql.PreparedStatement; impor ...
- mysql 分页查询web_JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)...
JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)-1.jpg (40.23 KB, 下载次数: 0) 2018-8-18 13:34 上传 在开发过程中,经常做的一件事,也是最基本的事 ...
- Web页面分页的几种方式
JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询) 转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6134851.html 在开发过程中,经常做 ...
- JavaWeb黑马旅游网-学习笔记06【旅游线路分页展示分页展示】
Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...
最新文章
- Android 点击空白出隐藏软键盘
- LibJson数据解析方法
- 检索数据_16_按照某个模式搜索
- 通过实例看懂diff命令输出
- 指定module_详解流量复制解决方案--NGINX的ngx_http_mirror_module模块实现
- 抵扣个税3K+,这个考试,70%程序员都报了!
- 暴风影音皮肤_暴风影音彻底凉了?安利一款良心的本地播放器
- Jquery WeUI 复选框
- 计算机画图保存的图片怎么找到,想知道电脑截图保存在哪儿找
- 关于Mifare Classic Tool (MTC)工具的秘钥包
- VMware连接U盘后无法显示U盘
- 风袖电商之重构Theme业务对象
- Invalid argument during startup: Failed to open the .conf file: redis-window
- 弧齿锥齿轮零件图_弧齿锥齿轮加工原理
- flume分布式日志收集系统操作
- C语言的32个常用关键字
- MATLAB中ode45()和Runge-Kutta算法(4阶)的比较
- Java打印int类型二进制
- python 做软件授权代理_软件提卡+授权API+代理系统三合一网站源码(开源)
- 平均 15189 元!2021 年 3 月程序员工资统计新出炉
热门文章
- 五种经典上涨形态、主力低位骗筹和高位出货的常用手段
- 小米Note顶配版 救砖详细步骤
- 废品回收微信小程序源码系统标准版开发简要说明
- 动态路由下刷新 页面空白
- python绘制曲线视频_使用Python绘制各种优美简单曲线
- matlab2020a parpool相关设置(并行计算)
- 谷歌云盘大文件下载失败解决方案
- 在GPU云服务器中部署Stable Diffusion web UI
- 工程图字体宋体仿宋_曾在中国辉煌一时的“仿宋体”,为什么现今很少有人用了?...
- delphi2009的安装办法