仓酷云

标题: JAVA编程:jsp+oracle 的两种分页完成程序 [打印本页]

作者: 透明    时间: 2015-1-18 11:20
标题: JAVA编程:jsp+oracle 的两种分页完成程序
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。js|oracle|程序|分页//*毗连Oracle的Bean:文件名为:conn_oracle.java
//*--------------------------------------------------------------------------------------------------------------
packageconn_oracle;
importjava.sql.*;
importjava.util.*;
importjava.io.PrintStream;
publicclassconn_oracle
{
StringserverName="localhost";
StringsConnStr="jdbc:oracle:thin:@localhost:1521:oemrep";
Stringlogin_name="scott";
Stringpwd="tiger";
Statementstmt=null;
Connectionconn=null;
ResultSetrs=null;
intafint;
publicconn_oracle()
{

try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundExceptionclassnotfoundexception)
{
System.err.println(classnotfoundexception.getMessage());
}
}


publicResultSetexecutequery(Stringsql){
try{
conn=DriverManager.getConnection(sConnStr,login_name,pwd);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}catch(SQLExceptione){
System.out.println("cantexecuteQuery");
}
returnrs;
}


publicintexecuteupdate(Stringsql)throwsSQLException{
try
{
conn=DriverManager.getConnection(sConnStr,login_name,pwd);
stmt=conn.createStatement();
afint=stmt.executeUpdate(sql);
}catch(SQLExceptionsqlexception)
{
System.err.println(sqlexception.getMessage());
}
returnafint;
}

publicvoidclosecon()
{
try{
if(rs!=null)
{
rs.close();
}
if(stmt!=null)
{
stmt.close();
}
if(conn!=null)
{
conn.close();
}
}catch(Exceptione){}
}
}
//*利用Oracle的rownum举行分页文件名为fy4.jsp
//*---------------------------------------------------------------------------------------------------------------------------------
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>
<jsp:useBeanid="DBLink"scope="page"class="conn_oracle.conn_oracle"/>
<%
//变量声明
Stringmysql=newString();//SQL语句
intintRowCount=0;//总的纪录数
intintPageCount=0;//总的页数
intintPageSize=5;//每页显现的纪录数
intintPage;//待显现页码
StringstrPage=newString();//用来吸收当页码参数
intbegin_no=0;//入手下手的rownum纪录号
intend_no=0;//停止的rownum纪录号
//获得待显现页码
strPage=request.getParameter("page");
if(strPage==null){//标明在QueryString中没有page这一个参数,此时显现第一页数据
intPage=1;
}
else{//将字符串转换成整型
intPage=java.lang.Integer.parseInt(strPage);
if(intPage<1)intPage=1;
}

//失掉总的数据纪录行数
mysql="selectcount(*)total_rowsfromscott.performance";
ResultSetrs=DBLink.executequery(mysql);
if(rs.next())
{
intRowCount=rs.getInt("total_rows");//这里只能用getInt()
//out.print("Totalrowsis:"+intRowCount);
}
rs.close();
//盘算统共要分几页
intPageCount=(intRowCount+intPageSize-1)/intPageSize;
//调剂待显现的页码
if(intPage>intPageCount)intPage=intPageCount;
//out.print("<br>Totalpagesis:"+intPageCount);
%>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>JSP数据库操纵例程-数据分页显现-JDBC2.0-Oracle</title>
</head>
<body>
<tableborder="1"cellspacing="0"cellpadding="0">
<tr>
<th>学号</th>
<th>姓名</th>
</tr>
<%
begin_no=(intPage-1)*intPageSize+1;
end_no=intPage*intPageSize;
//out.print("<br>begin:"+begin_no+"<br>end:"+end_no);
mysql="select*from(selectrownumrow_id,s_id,s_namefrom(selects_id,s_namefromperformanceorderbys_iddesc))whererow_idbetween"+begin_no+"and"+end_no;
rs=DBLink.executequery(mysql);
while(rs.next())
{
%>
<tr>
<td><%=rs.getString("s_id")%></td>
<td><%=rs.getString("s_name")%></td>
</tr>
<%
}
rs.close();
%>
</table>
第<%=intPage%>页共<%=intPageCount%>页
<ahref="fy4.jsp?page=1">首页</a>
<%if(intPage<intPageCount){%><ahref="fy4.jsp?page=<%=intPage+1%>">下一页</a><%}%>
<%if(intPage>1){%><ahref="fy4.jsp?page=<%=intPage-1%>">上一页</a><%}%>
<ahref="fy4.jsp?page=<%=intPageCount%>">尾页</a>


<%
//封闭数据库毗连
DBLink.closecon();
%>

//*一样平常通用的分页办法,不外效力较低文件名为:fy2.jsy
//*------------------------------------------------------------------------------------------------------------------------------------
<%@pagecontentType="text/html;charset=gb2312"%>
<jsp:useBeanid="DBLink"scope="page"class="conn_oracle.conn_oracle"/>
<%
//变量声明
java.sql.ResultSetrs;//了局集对象
java.lang.Stringsql;//SQL语句
intintPageSize;//一页显现的纪录数
intintRowCount;//纪录总数
intintPageCount;//总页数
intintPage;//待显现页码
java.lang.StringstrPage;
inti;
//设置一页显现的纪录数
intPageSize=20;
//获得待显现页码
strPage=request.getParameter("page");
if(strPage==null){//标明在QueryString中没有page这一个参数,此时显现第一页数据
intPage=1;
}
else{//将字符串转换成整型
intPage=java.lang.Integer.parseInt(strPage);
if(intPage<1)intPage=1;
}

sql="select*fromscott.performance";
//实行SQL语句并猎取了局集
rs=DBLink.executequery(sql);
//猎取纪录总数
rs.last();
intRowCount=rs.getRow();
//记算总页数
intPageCount=(intRowCount+intPageSize-1)/intPageSize;
//调剂待显现的页码
if(intPage>intPageCount)intPage=intPageCount;
%>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>JSP数据库操纵例程-数据分页显现-JDBC2.0-Oracle</title>
</head>
<body>
<tableborder="1"cellspacing="0"cellpadding="0">
<tr>
<th>学号</th>
<th>姓名</th>
</tr>
<%
if(intPageCount>0){
//将纪录指针定位到待显现页的第一笔记录上
rs.absolute((intPage-1)*intPageSize+1);
//显现数据
i=0;
while(i<intPageSize&&!rs.isAfterLast()){
%>
<tr>
<td><%=rs.getString("s_id")%></td>
<td><%=rs.getString("s_name")%></td>
</tr>
<%
rs.next();
i++;
}
}
%>
</table>
第<%=intPage%>页共<%=intPageCount%>页
<ahref="fy2.jsp?page=1">首页</a>
<%if(intPage<intPageCount){%><ahref="fy2.jsp?page=<%=intPage+1%>">下一页</a><%}%>
<%if(intPage>1){%><ahref="fy2.jsp?page=<%=intPage-1%>">上一页</a><%}%>
<ahref="fy2.jsp?page=<%=intPageCount%>">尾页</a>

</body>
</html>
<%
//封闭了局集
rs.close();
//封闭数据库毗连
DBLink.closecon();
%>

比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。
作者: 因胸联盟    时间: 2015-1-20 08:46
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 灵魂腐蚀    时间: 2015-1-24 14:50
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 活着的死人    时间: 2015-1-31 06:16
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 再现理想    时间: 2015-2-4 19:40
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 小女巫    时间: 2015-2-7 09:22
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者: 不帅    时间: 2015-2-19 19:07
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 小魔女    时间: 2015-2-27 04:34
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者: 飘飘悠悠    时间: 2015-2-28 17:42
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 兰色精灵    时间: 2015-3-6 00:12
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者: 第二个灵魂    时间: 2015-3-25 19:30
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2