http://expert.csdn.net/Expert/topic/624/624919.xml?temp=.3606684
解决方案 »
- 有没有点击input type=text可以弹出窗口的东西,最好是jquery的
- javascript Function问题
- Lazy的这样用谁见过?
- eclipse struts hibernate spring
- 反编译过来的java文件如何再编译回去?
- 在jsp中,关于session数据实现Serialization接口的问题?在线等
- 一个关于java.util.TimerTask 的run()函数的问题
- jive里面发帖子的附件如果有中文名,显示出来是乱码,怎么办?
- 在JSP的form中输入中文,在servlet中取到的问号
- 页面执行的问题
- 国外高手参加世界编程大赛时的参赛作品,获一等奖。看完后,汗……(与java无关,请版主留情)
- jsp访问mysql数据库的问题
功能:JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle
--%> <%@ page contentType=\"text/html;charset=8859_1\" %&g
t; <%
//变量声明
java.sql.Connection sqlCon; //数据库连接对象
java.sql.Statement sqlStmt; //SQL语句对象
java.sql.ResultSet sqlRst; //结果集对象 java.lang.String strCon; //数据库连接字符串
java.lang.String strSQL; //SQL语句 int intPageSize; //一页显示的记录数
int intRowCount; //记录总数
int intPageCount; //总页数
int intPage; //待显示页码
java.lang.String strPage; int i; //设置一页显示的记录数
intPageSize = 2; //取得待显示页码
strPage = request.getParameter(\"page\");
if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}
else{//将字符串转换成整型
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1;
} //装载JDBC驱动程序
java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); //设置数据库连接字符串
strCon = \"jdbc:oracle:thin:@linux:1521:ora4cweb\"; //连接数据库
sqlCon = java.sql.DriverManager.getConnection(strCon,\"hzq\",\"hzq\"); //创建一个可以滚动的只读的SQL语句对象
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //准备SQL语句
strSQL = \"select name,age from test\"; //执行SQL语句并获取结果集
sqlRst = sqlStmt.executeQuery(strSQL); //获取记录总数
sqlRst.last();
intRowCount = sqlRst.getRow(); //记算总页数
intPageCount = (intRowCount+intPageSize-1) / intPageSize; //调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;
%> <html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">
<title>JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle</title>
</head> <body> <table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<th>姓名</th>
<th>年龄</th>
</tr> <%
if(intPageCount>0){
//将记录指针定位到待显示页的第一条记录上
sqlRst.absolute((intPage-1) * intPageSize + 1); //显示数据
i = 0;
while(i<intPageSize && !sqlRst.isAfterLast()){
%>
<tr>
<td><%=sqlRst.getString(1)%></td>
<td><%=sqlRst.getString(2)%></td>
</tr>
<%
sqlRst.next();
i++;
}
}
%> </table> 第<%=intPage%>页 共<%=intPageCount%>页 <%if(intPage<intPageCount){%><a href=\"jdbc20-oracle.jsp?page=<%=intPage+1%>\">下一页</a><%}%> <%if(intPage>1){%><a href=\"jdbc20-oracle.jsp?page=<%=intPage-1%>\">上一页</a><%}%> </body>
</html> <%
//关闭结果集
sqlRst.close(); //关闭SQL语句对象
sqlStmt.close(); //关闭数据库
sqlCon.close();
所以我用了javabean,但是我没法在javabean里面处理所有的分页,只能分开来。我的解决办法是这样的。
数据库操作写到javabean里面
分页处理在JSP页面上
<html>
<head>
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.io.*,javax.servlet.http.*,java.util.*"%>
<%@page language="Java" import="java.sql.*"%><head>
<title>ºÅÔ´²éѯ½á¹û</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="style.css" type="text/css">
<script language="javascript">
<!---->
</script>
</head>
<body text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="#FFFFFF" vlink="#FFFFFF"><jsp:include page="menu.jsp" flush="true"/><table width="100%" border="0" cellspacing="0" cellpadding="0" height="5%">
<tr>
<td height="374" valign="top" >
<table width="98%" border="0" cellspacing="0" cellpadding="0">
<tr align="left" valign="top">
<td height="366" colspan="2">
<table width="91%" border="0" cellspacing="0" cellpadding="0" height="100" > <tr>
<td align="left" valign="top" height="273" colspan="3">
<table width="750" border="1" cellspacing="0" cellpadding="0" class="command">
<tr>
<td width="50" class="title" >ºÅÂë</td>
<td class="title" width="50" >´úÀíÉÌ</td>
<td class="title" width="50" >ºÅÂë״̬</td>
<td class="title" width="50" >´´½¨ÈÕÆÚ</td>
<td class="title" width="50" >¿ªÊ¼ÈÕÆÚ</td>
<td class="title" width="50" >½áÊøÈÕÆÚ</td>
<td class="title" width="50" >Ï·¢ÈÕÆÚ</td>
<td class="title" width="50" >¼¤»îÈÕÆÚ</td>
<td class="title" width="50" >±£ÁôÈÕÆÚ</td>
<td class="title" width="50" >»ØÊÕÈÕÆÚ</td>
<td class="title" width="50" >Ö±Ïú×é</td>
<td class="title" width="50" >Ñ¡ºÅ·Ñ</td>
</tr><%
Sales.ExeSQL ExeSQL=new Sales.ExeSQL();
try {
//·ÖÒ³´¦Àí
int i;
int ipage=10; //·ÖÒ³µ¥Î»
int allpage; //×ÜÒ³Êý
int pages; //½ÓÊܵÄÒ³Âë±äÁ¿
int cpage=1; //µ±Ç°Ò³
int spage; //¿ªÊ¼Ò³
int intStatus=0;
int allCol=0;
String strSel="";
String FromNum="";
String ToNum="";
String strTest="";strSel=(String) request.getParameter("strPrice");if ((request.getParameter("pages")==null)||(request.getParameter("pages")=="")){
FromNum=(String) request.getParameter("FromNum");
ToNum=(String) request.getParameter("ToNum");
session.setAttribute("FromNum",FromNum);
session.setAttribute("ToNum",ToNum);
} else{
FromNum= (String) session.getAttribute("FromNum");
ToNum= (String) session.getAttribute("ToNum");
}
//取得记录总数
allCol=ExeSQL.getMobileCount(FromNum,ToNum);
//总页面数
allpage = (int)Math.ceil((allCol + ipage-1) / ipage);//判断参数pages是否为空
if (request.getParameter("pages")==null) {
pages=1;
} else {
pages = new Integer(request.getParameter("pages")).intValue();}//判断当前页
if(pages > allpage ||pages == 0){
cpage = 1;
} else {
cpage = pages;
}//ÅжÏÆðʼҳ
spage=(cpage-1)*ipage; ResultSet rs=ExeSQL.getMobileCode(FromNum,ToNum);
int cu=1;
int begin_page=ipage*(cpage-1);
int end_page=begin_page+ipage;
int j=0;
//循环取记录
while (rs.next())
{ j++; if (j<=begin_page) continue;
if (j>end_page) break;
%>
<tr>
<td width="50" class="show" ><%out.print(rs.getString("NUM_NO"));%></td>
<td class="show" width="50" ><%out.print(rs.getString("agent_name")); %></td>
<td class="show width="50" ><%out.print(rs.getString("STATUS"));%></td>
<td class="show" width="50" ><%out.print(rs.getString("BUILD_DATE"));%></td>
<td class="show" width="50" ><%out.print(rs.getString("START_DATE"));%></td>
<td class="show" width="50" ><%out.print(rs.getString("END_DATE"));%>;</td>
<td class="show" width="50" ><%out.print(rs.getString("ASSIGN_DATE"));%></td>
<td class="show" width="50" ><%out.print(rs.getString("ACTIVE_DATE"));%></td>
<td class="show" width="50" ><%out.print(rs.getString("HOLD_DATE"));%></td>
<td class="show" width="50" ><%out.print(rs.getString("RECYLE_DATE"));%></td>
<td class="show" width="50" ><%out.print(rs.getString("group_name"));%></td>
<td class="show" width="50" ><%out.print(rs.getString("NUM_FARE"));%></td>
</tr>
<%
cu++;
}
%>
</table>
<table>
<tr bgcolor="#CCCCCC">
<td align="right" valign="middle" >
¹² <%= allCol %>Ìõ¼Ç¼ ¹² <%= allpage %>Ò³
<% if (cpage>1) { %><a href="J_QueryCode_Result.jsp?pages=<%= cpage-1 %>&&strPrice=<%=strSel%>">Ç°Ò»Ò³</a><% } if (cpage<allpage) { %><a href="J_QueryCode_Result.jsp?pages=<%= cpage+1 %>&&strPrice=<%=strSel%>">ÏÂÒ»Ò³</a><% } %> / <% for (i=1;i<=allpage;i++) { if (i != pages) {%><a href="J_QueryCode_Result.jsp?pages=<%= i %>&&strPrice=<%=strSel%>"><%= i %></a> <% } }%></td>
</tr> <tr>
<td class="show"><br>
<div align="center">
<p><a href=J_QueryCode.jsp>ÖØвéѯ</a>
</p></div>
</td>
</tr> </table> </td>
</tr>
<tr>
<td align="center" height="90" colspan="3" bgcolor="#dadada" valign="top">
<hr>
<!-- #BeginLibraryItem "/Library/di.lbi" -->
<table width="100%" border="0" cellspacing="0" cellpadding="4" bgcolor="#EAEAEA">
<tr>
<td>
<div align="center" class="text2">
<p>°æȨËùÓУº¿ÆѶÊýÂë<font size="2"><br>
</font>ºÏ×÷Ó뽨Ò飺 <a href="mailto:[email protected]"> [email protected]</a><br>
ÒµÎñÁªÏµ£º£¨+86755£© 6733888</p>
</div>
</td>
</tr>
</table><!-- #EndLibraryItem --> </td>
</tr>
</table>
</tr>
</table>
</td>
</tr>
</table><%
//¹Ø±Õ½á¹û¼¯
rs.close();}
catch(Exception e) {
e.printStackTrace();
}
finally{
}