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(分页)相关推荐

  1. Javaweb分页技术实现

    Javaweb分页技术实现 分页技术就是通过SQL语句(如下)来获取数据,具体实现看下面代码 //分页查询语句 select * from 表名 where limit page , count; 和 ...

  2. javaweb分页的后端实现

    先上demo图 servlet实现部分: package servlet;import java.io.IOException; import java.util.List;import javax. ...

  3. javaweb分页查询oracle,JavaWeb项目 利用Oracle数据库实现分页查看细讲

    一.了解数据库指令 Oracle数据库相对于MySQL数据库来说,要实现分页查看,Oracle中没有像MySQL里的limit命令,使用的Oracle语句也比较复杂 select * from (se ...

  4. java 分页原理_关于javaweb分页原理

    分页分为两种分页,一是数据库分页.二是,java程序分页,这两种的其别的,数据库分页可以操作大量数据.而java程序分页只能操作小量数据,因此,在大多数情况下我们都用数据库分页,SQL我用top进行分 ...

  5. Ajax与JavaWeb分页

    Ajax Ajax:Ajax 是与服务器交换数据的艺术,它在不重载全部页面的情况下,实现了对部分网页的更新 Ajax:Asynchronous JavaScript and XML,异步 javasc ...

  6. javaweb 分页代码

    dao方法: package com.ruojuan.Dao; import java.sql.Connection; import java.sql.PreparedStatement; impor ...

  7. mysql 分页查询web_JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)...

    JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)-1.jpg (40.23 KB, 下载次数: 0) 2018-8-18 13:34 上传 在开发过程中,经常做的一件事,也是最基本的事 ...

  8. Web页面分页的几种方式

    JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)  转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6134851.html 在开发过程中,经常做 ...

  9. JavaWeb黑马旅游网-学习笔记06【旅游线路分页展示分页展示】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

最新文章

  1. Android 点击空白出隐藏软键盘
  2. LibJson数据解析方法
  3. 检索数据_16_按照某个模式搜索
  4. 通过实例看懂diff命令输出
  5. 指定module_详解流量复制解决方案--NGINX的ngx_http_mirror_module模块实现
  6. 抵扣个税3K+,这个考试,70%程序员都报了!
  7. 暴风影音皮肤_暴风影音彻底凉了?安利一款良心的本地播放器
  8. Jquery WeUI 复选框
  9. 计算机画图保存的图片怎么找到,想知道电脑截图保存在哪儿找
  10. 关于Mifare Classic Tool (MTC)工具的秘钥包
  11. VMware连接U盘后无法显示U盘
  12. 风袖电商之重构Theme业务对象
  13. Invalid argument during startup: Failed to open the .conf file: redis-window
  14. 弧齿锥齿轮零件图_弧齿锥齿轮加工原理
  15. flume分布式日志收集系统操作
  16. C语言的32个常用关键字
  17. MATLAB中ode45()和Runge-Kutta算法(4阶)的比较
  18. Java打印int类型二进制
  19. python 做软件授权代理_软件提卡+授权API+代理系统三合一网站源码(开源)
  20. 平均 15189 元!2021 年 3 月程序员工资统计新出炉

热门文章

  1. 五种经典上涨形态、主力低位骗筹和高位出货的常用手段
  2. 小米Note顶配版 救砖详细步骤
  3. 废品回收微信小程序源码系统标准版开发简要说明
  4. 动态路由下刷新 页面空白
  5. python绘制曲线视频_使用Python绘制各种优美简单曲线
  6. matlab2020a parpool相关设置(并行计算)
  7. 谷歌云盘大文件下载失败解决方案
  8. 在GPU云服务器中部署Stable Diffusion web UI
  9. 工程图字体宋体仿宋_曾在中国辉煌一时的“仿宋体”,为什么现今很少有人用了?...
  10. delphi2009的安装办法