JSP的分页技术
在实际应用中,如果从数据库中查询的记录特别的多,甚至超过了显示屏的显示范围,这个时候可将结果进行分页显示。
- 假设总记录数为intRowCount,每页显示的数量为inPageSize,总页数为intPageCount,那么总页数的计算公式如下:
- 如果:(intRowCount%intPageSize)>0,则intPageCount=intRowCount/intPageSize+1
- 如果:(intRowCount%intPageSize)=0,则intPageCount=intRowCount/intPageSize
- 翻页后显示intPage页的内容,将记录指针移动到(intPage-1)*intPageSize+1
建立pageBreak.jsp文件,代码如下
- <%@ page import="java.sql.*" %>
- <%@ page contentType="text/html" pageEncoding="UTF-8" %>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html;charest=UTF-8">
- <title>JSP分页浏览</title>
- </head>
- <body>
- <div align="center">
- 分页显示记录内容
- <hr>
- <table border="1" bgcolor="cccfff" align="center">
- <tr>
- <th>学号</th>
- <th>班级</th>
- <th>姓名</th>
- <th>性别</th>
- <th>年龄</th>
- </tr>
- <%
- String DBDRIVER="org.gjt.mm.mysql.Driver"; //我用的mysql数据库
- String DBURL="jdbc:mysql://localhost:3306/example";
- String DBUSER="root";
- String DBPASS="mysqladmin";
- String sql="select * from paging";
- int intPageSize; //一页显示的记录数
- int intRowCount; //记录总数
- int intPageCount; //总页数
- int intPage; //待显示页码
- int i;
- String strPage;
- intPageSize=5; //设置一页显示的记录数
- //取得待显示页码
- strPage=request.getParameter("page");
- if(strPage==null){ //没有page这个属性
- intPage=1;
- }else{
- intPage=java.lang.Integer.parseInt(strPage);
- if(intPage<1){
- intPage=1;
- }
- }
- Connection conn=null;
- Statement stmt=null;
- ResultSet rs=null;
- Class.forName(DBDRIVER);
- conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
- stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
- rs=stmt.executeQuery(sql);
- rs.last(); //光标指向查询结果集的最后一条记录
- intRowCount=rs.getRow(); //获取记录总数
- intPageCount=(intRowCount+intPageSize-1)/intPageSize; //计算总页数
- if(intPage>intPageCount){ //调整待显示的页码
- intPage=intPageCount;
- }
- if(intPageCount>0){
- rs.absolute((intPage-1)*intPageSize+1); //将记录指针定位在待显示页的第一天记录上
- }
- //显示数据
- i=0;
- while(i<intPageSize&&!rs.isAfterLast()){
- %>
- <tr>
- <td><%=rs.getString("stuNumber") %></td> //从数据库读取记录
- <td><%=rs.getString("stuBanji") %></td>
- <td><%=rs.getString("stuName") %></td>
- <td><%=rs.getString("stuSex") %></td>
- <td><%=rs.getString("stuAge") %></td>
- </tr>
- <%
- rs.next();
- i++;
- }
- %>
- </table>
- <hr>
- <div align="center">
- 第<%=intPage %>页 共<%=intPageCount %>页
- <%
- if(intPage>1){
- %>
- <a href="pageBreak.jsp?page=<%=intPage-1%>">上一页</a>
- <%
- } //下一页
- if(intPage<intPageCount){
- %>
- <a href="pageBreak.jsp?page=<%=intPage+1%>">下一页</a>
- <%
- }
- rs.close();
- stmt.close();
- conn.close();
- %>
- </div>
- </div>
- </body>
- </html>
显示结果如下:
1、
2、
3、
数据库代码为:
- create database example;
- create table paging(
- stuNumber varchar(15),
- stuBanji varchar(10),
- stuName varchar(50),
- stuSex varchar(4),
- stuAge int
- );
- INSERT INTO paging(stuNumber,stuBanji,stuName,stuSex,stuAge) VALUES ('2012040101207','24010105','鲍礼彬','男',23);
JSP的分页技术的更多相关文章
- jsp-------------之分页技术(一)
jsp分页技术之: 如下图:百度的喵 看上图中卡哇伊的小苗的爪子下面的数字,就是分页啦!那我们如何做出这样一个效果呢? 下面我们来逐一分解: jsp分页技术一 : (算法) /* int pageS ...
- Javaweb 第15天 web练习和分页技术
第15天 web练习和分页技术 复习day14内容: 学习新技术的思路? 分析功能的思路? 使用queryRunner操作数据库的步骤? ResultSetHandler接口常用实现类(三个重点)? ...
- 改进Spring中的分页技术
Spring中有一个PagedListHolder,能够实现分页. 但此类有几个缺点: 1. 使用此类的代码比較繁琐 2. 此类存放的数据源是全部的记录集,即对于记录数为1000条的数据,即使我们仅仅 ...
- JAVAEE之-----MySQL分页技术(带搜索)
需求: 为什么须要採用分页技术呢?在数据库中我们查询数据的时候,须要将数据返回到显示页面.数据库中含有大量数据,所有显示在一个页面过于太多,所以我们须要採用分页技术.每一页显示不同数据. 主要解决这个 ...
- Mysql学习总结(32)——MySQL分页技术详解
1.什么是数据分页:数据分页就是将很多条记录像书本一样分页,每页显示多少行记录: 2.为什么要数据分页:当我们进行sql语句查询时,假如数据有成千上万行记录,如果在同一个页面去显示,那这个页面得有多大 ...
- tp中使用分页技术
1 public function showList() { $m_ld = D ( 'guangxi_ld' ); $page = I ( 'get.p', 1 ); // 在配置中获取分页值 $p ...
- Servlet分页技术
这是看韩顺平老师的servlet视频,自己动手写的,楼主看韩顺平老师的servlet是2006制作的,用的是sql server数据库,自己又用的是oracle数据库,所以怕有的同学遇到同样的问题,不 ...
- 分页技术之PageDataSource类
之前给大家介绍了分页技术之Gridview控件,今天给大家介绍另外一种分页技术,采用PageDataSource类 + Repeater控件来实现. 前台只需要拖出一个Repeater控件来绑定要显示 ...
- 分页技术之GridView控件
GridView控件实现分页技术 第一步:设置GridView控件的属性,跟分页相关的属性设置如下: AllowPaging="true":允许分页, PageSize=" ...
随机推荐
- (7)linux文件常用操作命令
ls / 查看根目录下的子节点(文件夹和文件)信息ls -al -a是显示隐藏文件 -l是以更详细的列表形式显示 **切换目录cd /home cd .. 返回上一级 **创建文件夹mkdir aaa ...
- (2) linux文件系统简介
bin -- 存放可执行的命令程序 sbin -- 系统管理相关的命令程序 boot -- 存放启动相关的内容 dev -- 存放设备和硬件 etc -- 存放程序,系统的配置文件 home -- 存 ...
- python+appium-desktop:安卓(android)7.0以上使用appium无法定位元素(无法refresh)且 无法运行脚本
--解决方法: 启动appium时配置中添加: "automationName":"uiautomator2" --扩展: 想支持安卓7.0及以上版本需要满足一 ...
- docker报错
用docker搭建环境时可能会遇到错误:No releases available for package "xxxx" No releases available for pac ...
- Unity 获取指定资源目录下的所有文件
string path="Assets";//Assets/Scenes if(Directory.Exists(path)){ var dirctory=new Director ...
- javascript中正则表达式中的 match,exec,test,replace 之我理解
这个正则 ($&) 的语法: https://msdn.microsoft.com/library/3k9c4a32(v=vs.94).aspx 在ECMAScript中对这几个的说明: ma ...
- c#mvc实现登录
本篇介绍MVC实现登录的方式,如下: 1.通过MVC Form 表单请求实现登录 2.通过AJAX GET 请求MVC Controller 实现登录 3.通过AJAX POST 请求MVC Cont ...
- uboot 设备树 libfdt
http://www.cnblogs.com/leaven/p/6295999.html
- hadoop的job执行在yarn中内存分配调节————Container [pid=108284,containerID=container_e19_1533108188813_12125_01_000002] is running beyond virtual memory limits. Current usage: 653.1 MB of 2 GB physical memory used
实际遇到的真实问题,解决方法: 1.调整虚拟内存率yarn.nodemanager.vmem-pmem-ratio (这个hadoop默认是2.1) 2.调整map与reduce的在AM中的大小大于y ...
- Java JDK 在Windows 10中配置环境变量
首先,去Oracle官方网站下载Java JDK https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...