读书人

oracle分页,该怎么解决

发布时间: 2012-03-23 12:06:21 作者: rapoo

oracle分页
麻烦大家给我看看,我这报错误说end标识符无效,我弄了半天不明白,求大神指点!!本人是个新手!!谢谢!

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'wel.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
登录成功!恭喜你!<%=request.getParameter("user") %> <br>
<a href="login.jsp">返回重新登录</a>
<hr>
<h1>用户信息列表</h1>
<%
//定义四个变量
int pageSize=3;
int pageNow=1;//默认显示第一页
int rowCount=0;
int pageCount=0;
int end=pageSize*pageNow;
int begin = (pageNow-1)*pageSize+1;

//查询得到rowCount
//1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.得到链接
Connection ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:oracl","test","test");
//3.创建Statement
Statement sm = ct.createStatement();
//4.查询
ResultSet rs = sm.executeQuery("select count(*) from pzusers");
//请注意,一定要rs.next();
if(rs.next()){
rowCount=rs.getInt(1);
}
//计算pageCount
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
//查询出需要显示的记录
rs = sm.executeQuery(" select * from (select a.* ,rownum rn from (select * from pzusers) a where rownum<=end)where rn >=begin");

//显示

%>

<table border="1">
<tr><td>用户id</td><td>用户名字</td><td>密码</td><td>邮件</td><td>级别</td></tr>

<%
while(rs.next()){
%>
<tr><td><%=rs.getInt(1)%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td>
<td><%=rs.getString(4)%></td>
<td><%=rs.getInt(5)%></td></tr>
<%
}
%>
</table>
<%
%>
</body>
</html>


[解决办法]
当然end无效啦,
你如果这样写sql,那么你就用 PreparedStatement 然后再sql中设置 ?

select * from (select a.* ,rownum rn from (select * from pzusers) a where rownum<=?)where rn >=?



然后通过PreparedStatement 里面的方法:setInt(1,end); setInt(2,begin);
[解决办法]

探讨
当然end无效啦,
你如果这样写sql,那么你就用 PreparedStatement 然后再sql中设置 ?

select * from (select a.* ,rownum rn from (select * from pzusers) a where rownum<=?)where rn >=?

然后通过PreparedStatement 里面的方法:setIn……

读书人网 >J2EE开发

热点推荐