我的分页程序错在哪???

sasa_sasa 2003-10-09 03:27:14
<%@ page import="beans.db,beans.tranChinese,java.sql.*"%>
<jsp:useBean id="mydb" scope="page" class="beans.db" />
<jsp:useBean id="tocn" scope="page" class="beans.tranChinese" />
<%@ page language="java"%>
<%@ page contentType="text/html;charset=gb2312"%>

<Html>
<Head>
<Title> 搜索结果 </Title>
<Head>
<Body>
<%
ResultSet rs=null;
String student_name="",sql0="";
student_name = tocn.toChinese(request.getParameter("student_name").trim());
%>
<form action="scoreQuery.jsp" name="student_selected" method="post">
<BR><BR>
<table width="80%" border="2" style="border-collapse: collapse" bordercolor="#A2C0FF" cellspacing="0" cellpadding="0" align="center">
<tr bgcolor="#73B5FF">
<td colspan="4" height="25" bgcolor="#73B599">
<div align="center"><font size="4pt"><b>搜 索 结 果</b></font></div>
</td>
<tr>
<tr bgcolor="#6699FF">
<td width="5%" height="25" bgcolor="#73B5FF">
<div align="center"></div>
</td>
<td width="25%" height="25" bgcolor="#73B5FF">
<div align="center"><b><font color="#FFFFFF">姓 名</font></b></div>
</td>
<td width="30%" height="25" bgcolor="#73B5FF">
<div align="center"><b><font color="#FFFFFF">部 门</font></b></div>
</td>
<td width="40%" height="25" bgcolor="#73B5FF">
<div align="center"><b><font color="#FFFFFF">E-Mail</font></b></div>
</td>
</tr>
<%
int i=0;
int intPageSize; //每页显示条数
int intRowCount; //总条数
int intPageCount;//总页数
int intPage; //显示页数
java.lang.String strPage;
intPageSize = 20;
strPage = request.getParameter("page");
if(strPage==null)
{
intPage = 1;
}
else
{
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1;
}

if(student_name.equals("*"))
{
sql0="select oid,common_name,department_number,email_address from usr";
}
else
{
sql0="select oid,common_name,department_number,email_address from usr where common_name like '%"+student_name+"%'";
}
rs=mydb.executeQuery(sql0);
//rs.beforeFirst();
rs.last();
intRowCount = rs.getRow(); //获取记录总数
rs.beforeFirst();
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())
{
student_name=rs.getString("common_name");
%>
<tr bgcolor="#EFF7FF">
<td width="5%" height="23">
<div align="center">
<input type="checkbox" name="checkbox1" value="<%=rs.getString("oid")%>">
</div>
</td>
<td width="25%" height="23">
<div align="left"><%=student_name%></div>
</td>
<td width="30%" height="23">
<div align="left"><%=rs.getString("department_number")%></div>
</td>
<td width="40%" height="23">
<div align="left"><%=rs.getString("email_address")%></div>
</td>
</tr>
<%
rs.next();
i++;
}
}
%>
<tr>
<td colspan="4" height="25" bgcolor="#73B5FF">
<div align="right">[第<%=intPage%>页/共<%=intPageCount%>页]<%
if(intPage<intPageCount){%><a href="studentShow.jsp?page=<%=intPage+1%>">[下一页]</a><%}
if(intPage>1){%><a href="studentShow.jsp?page=<%=intPage-1%>">[上一页]</a><%}%>
</div>
</td>
</tr>
<tr>
<td colspan="4" height="25" bgcolor="#73B5FF">
<div align="center"><input type="submit" value="确 定"></div>
</td>
</tr>
</Table>
</form>
</Body>
</Html>
<%
rs.close();
mydb.release();
%>
...全文
50 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sasa_sasa 2003-10-10
  • 打赏
  • 举报
回复
我已安装了db27.2版客户端,还要再安装JDBC2的驱动吗? 在哪可以下载?
sasa_sasa 2003-10-10
  • 打赏
  • 举报
回复
为什么在JDBC中用stmt=conn.createStatement();时,访问数据库正常,但运行到rs.last();时就报错:javax.servlet.ServletException: COM.ibm.db2.jdbc.app.DB2ResultSet.last()Z………………………………………………………………………………
而用stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);时,访问数据库时就报错:javax.servlet.ServletException: COM.ibm.db2.jdbc.app.DB2Connection.createStatement(II)Ljava/sql/Statement;
……………………………………………………………………………………
我用的是DB2数据库///
sasa_sasa 2003-10-09
  • 打赏
  • 举报
回复
public db()
{
try
{
DriverManager.registerDriver(new COM.ibm.db2.jdbc.app.DB2Driver());
String url="jdbc:db2:XXX";
String user="administrator";
String password="password";

conn= DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();

}
catch(Exception e)
{
System.err.println("DBconn (): " + e.getMessage());
}
}
public ResultSet executeQuery(String sql)
{
rs = null;
try
{
rs = stmt.executeQuery(sql);
}
catch(SQLException e)
{
System.err.println("executeQuery error:" + e.getMessage());
}
return rs;
}
onizuka5211 2003-10-09
  • 打赏
  • 举报
回复
mydb怎么定义的?
xiejiangjun 2003-10-09
  • 打赏
  • 举报
回复
你的驱动不够新,下载新的DB2驱动试试
sasa_sasa 2003-10-09
  • 打赏
  • 举报
回复
是不是DB2不支持rs.last()方法/
sasa_sasa 2003-10-09
  • 打赏
  • 举报
回复
加参数不行,一读取数据库就报错:
javax.servlet.ServletException: COM.ibm.db2.jdbc.app.DB2Connection.createStatement(II)Ljava/sql/Statement;
xiejiangjun 2003-10-09
  • 打赏
  • 举报
回复
检查你的Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
看看后面的游标参数设置了吗?
是不是滚动敏感,没有参数默认的只能往前滚动,
xiejiangjun 2003-10-09
  • 打赏
  • 举报
回复
rs.last();这个有问题
你的结果集是不可回滚的
sasa_sasa 2003-10-09
  • 打赏
  • 举报
回复
错误提示:
javax.servlet.ServletException: COM.ibm.db2.jdbc.app.DB2ResultSet.last()Z
我用的是DB2数据库/ 通过JDBC与数据库进行连接的/

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧