JSP+Oracle实现分页功能

Oracle:

create table load
(
id char(200) not null,
title varchar2(100) not null,
time varchar2(100) not null,
def1 varchar2(100),
def2 varchar2(200),
def3 varchar2(300),
def4 varchar2(400),
def5 varchar2(500),
dr number(10) default 0,
ts char(19) default to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘)
);

JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%! int pageSize=10;
int pageCount;
int showPage;
%>
<!-- 连接数据库并从数据库中调取记录-->
<%
Connection con;//声明数据库连接对象
Statement sql;//声明数据库连接对象
ResultSet rs;//声明数据库结果集

try{
// Class.forName("com.mysql.jdbc.Driver");
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e){
}

try{
// con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/java","root","1993");
con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:arcl","mj_portal","1");
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//返回可滚动的结果集
rs=sql.executeQuery("select * from load");
//将游标移到最后一行
rs.last();
//获取最后一行的行号
int recordCount=rs.getRow();
//计算分页后的总数
pageCount=(recordCount%pageSize==0)?(recordCount/pageSize):(recordCount/pageSize+1);

//获取用户想要显示的页数:
String integer=request.getParameter("showPage");
if(integer==null){
integer="1";
}
try{showPage=Integer.parseInt(integer);
}catch(NumberFormatException e){
showPage=1;
}
if(showPage<=1){
showPage=1;
}
if(showPage>=pageCount){
showPage=pageCount;
}

//如果要显示第showPage页,那么游标应该移动到的position的值是:
int position=(showPage-1)*pageSize+1;
//设置游标的位置
rs.absolute(position);
//用for循环显示本页中应显示的的记录
for(int i=1;i<=pageSize;i++){
%>
<div style="width:100%;">
<div style="margin:15px;">
<li style="border-bottom:1px dashed #222;height:25px;list-style:none;">
<a style="float:left;width:5%;"><%=rs.getString("id")%></a>
<a style="float:left;width:88%;"><%=rs.getString("title")%></a>
<a style="margin-right:5px;width:7%;"><%=rs.getString("time")%></a>
</li>
</div>
</div>
<%
rs.next();
}
rs.close();
con.close();
}
catch(Exception e){
e.printStackTrace();}
%>
<br>
<div style="margin-left:15%;">
<div style="margin-top:-18px;margin-left:130px">
<a href="List.jsp?showPage=1">首页</a>
<a href="List.jsp?showPage=<%=showPage-1%>">上一页</a>
<% //根据pageCount的值显示每一页的数字并附加上相应的超链接
for(int i=1;i<=pageCount;i++){
%>

<% }
%>
<a href="List.jsp?showPage=<%=showPage+1%>">下一页</a>
<a href="List.jsp?showPage=<%=pageCount%>">末页</a>
<a>第<%=showPage %>页</a>
<a>共<%=pageCount %>页</a>
</div>
<!-- 通过表单提交用户想要显示的页数 -->
<form action="" method="get" style="margin-top:-18px;margin-left:420px">
跳转到第<input type="text" name="showPage" size="4">页
<input type="submit" name="submit" value="跳转">
</form>
</div>

</body>
</html>

时间: 2024-08-25 14:17:35

JSP+Oracle实现分页功能的相关文章

jsp、js分页功能的简单总结

一.概述 首先,我们要明确为何需要分页技术,主要原因有以下: 1.分页可以提高客户体验度,适当地选择合适的数据条数,让页面显得更有条理,使得用户体验感良好,避免过多数据的冗余. 2.提高性能的需要.分页技术,有选择的加载某部分数据,在数据量较大的时候,分部分加载数据.显示数据,可以有效提高程序的性能,当然,单纯的js的分页技术并没有这种效果. 所以,分页技术是web技术中比较常用的技术,而下面讨论的主要是两种分页技术:一种是jsp的分页技术,其读取数据分批次读取,操作页数跳转的时候才加载相应页面

jsp+oracle 排序分页+Pageutil类

1.rownum和排序 Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意了. SQL> select rownum ,id,name from student order by name; ROWNUM ID      NAME 3 200003 李三 2 200002 王二 1 200001 张一 4 200004 赵四 可以看出,rownum并不是按照name列来生成的序号.系统是按照记录插入时的顺序给记录排的号,rowid

分页功能的实现——Jdbc &amp;&amp; JSP

@目录 什么是分页 ? 两个子模块功能的问题分析 和 解决方案 有条件查和无条件查询的影响 和 解决方案 项目案例: mysql + commons-dbutils+itcast-tools+BaseServlet + 分页+JSP+JSTL+EL+MVC模式 什么是分页? 如上所示,就是分页  ,不用多说了 子模块功能的问题分析 和 解决方案 @总功能分析  常规JDBC中,点击查询或输入条件查询,在页面中可显示查询出的所有记录,有多少记录就显示多少.在这种项目的基础上增加分页功能 . @分页

JDBC使用数据库来完成分页功能

本篇讲诉如何在页面中通过操作数据库来完成数据显示的分页功能.当一个操作数据库进行查询的语句返回的结果集内容如果过多,那么内存极有可能溢出,所以在大数据的情况下分页是必须的.当然分页能通过很多种方式来实现,而这里我们采用的是操作数据库的方式,而且在这种方式中,最重要的是带限制条件的查询SQL语句: select name from user limit m,n 其中m与n为数字.n代表需要获取多少行的数据项,而m代表从哪开始(以0为起始),例如我们想从user表中先获取前五行数据项(1-5)的na

Mybatis Generator实现分页功能

Mybatis Generator实现分页功能 分类: IBATIS2013-07-17 17:03 882人阅读 评论(1) 收藏 举报 mybatisibatisgeneratorpage分页 众所周知,Mybatis本身没有提供基于数据库方言的分页功能,而是基于JDBC的游标分页,很容易出现性能问题.网上有很多分页的解决方案,不外乎是基于Mybatis本机的插件机制,通过拦截Sql做分页.但是在像Oracle这样的数据库上,拦截器生成的Sql语句没有变量绑定,而且每次语句的都要去拦截,感觉

Oracle数据库分页总结

在Oracle数据库中,数据分页功能是必不可少的操作, Oracle数据库分页查询语句有三种写法: --1.根据ROWID 来分select * from nmb where rowid in(select rid from (select rownum rn,rid from (select rowid rid,userid from nmb order by userid desc )where rownum <30)where rn>20)order by userid desc;--效

hibernate和struts2实现分页功能

1.DAO层接口的设计,定义一个PersonDAO接口,里面声明了两个方法: public interface PersonDAO { public List<Person> queryByPage(String hql, int offset, int pageSize); public int getAllRowCount(String hql); } 2.DAO层接口的实现类PersonDAOImpl类,将其两个方法实现出来: public class PersonDAOImpl imp

最好用的兼容多种数据库通用高效的大数据分页功能

通用权限管理系统底层有一个通用分页查询功能,该功能可实现多种数据库的查询,支持多表关联分页查询,目前是最完善的分页功能实现. 下面代码是使用的方法截图: /////////////////////////////// 后台代码截图1 /////////////////////////////// 后台代码截图2 /////////////////////////////// 后台代码截图3 /////////////////////////////// 后台代码截图4 /////////////

【jQuery 分页】jQuery分页功能的实现

自写的jQuery实现分页功能的分页组件: 功能效果如下: 分页组件就是上图中的三部分, 分别放在表格上部  和下部 . 其中, 1>>>页面的代码如下: product.jsp 其中引用bootstrap.css  和bootstrap .js是必须的 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@ ta