帮我看一个简单的jsp页面,如何取得记录集的记录数

WorldCreater 2003-05-11 05:09:29
错误信息:
org.apache.jasper.JasperException: Result set type is TYPE_FORWARD_ONLY
我的jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ page language="java" import="java.sql.*" %>
<html>
<head>
<title>Untitled</title>
</head>
<body>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection cnn = DriverManager.getConnection("jdbc:odbc:BorlandDemosDb","admin","");
Statement stmt=cnn.createStatement();
ResultSet rs = stmt.executeQuery( "select * from customer" );
// rs.last(); //启用这句就出现上边的错误
// out.println( rs.getRow() );
while( rs.next() )
{
out.println( rs.getString("CustNo") );
}
%>
</body>
</html>
...全文
116 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaolaxiong 2003-05-13
  • 打赏
  • 举报
回复
有一种办法就是
int Rows = 0;
while (rs.next())
Rows++;
WorldCreater 2003-05-13
  • 打赏
  • 举报
回复
select count(*) as count from table;

这种方法就不用再说了,我连last()都不想调,还用这种低效率的办法!
cityroom 2003-05-13
  • 打赏
  • 举报
回复
select count(*) as count from table;

应该可以的:)
yyfish 2003-05-13
  • 打赏
  • 举报
回复
顺便想问一下:
如果写语句,来进行分页。
是不是对结果集加以条件读出,能否举个例子!
csdn_search 2003-05-13
  • 打赏
  • 举报
回复
rs.last();
intRowCount = rs.getRow(); //得到总记录条数
但这样做的条件是:
stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
因为这样,结果集可以滚动,必须这样做
用rs.absolute()定位,但这样也带来一个问题,效率低,
斑竹测试过,最快的分页方式是用oracle数据库,其次写sql语句,再次.next(),效率最差的是用absolute()方法,你自己看着办
AHUA1001 2003-05-13
  • 打赏
  • 举报
回复
rs.frist();
rs.last();
rs.getRow();
可以用rs.getRow();来得到,但是之前一定有一个结果集从头(rs.frist();)到尾的过程(rs.last();)。

jaliu 2003-05-12
  • 打赏
  • 举报
回复
rs.next() ========>rs.previous()
试试看
jaliu 2003-05-12
  • 打赏
  • 举报
回复
rs.next() ========>rs.previous()
jaliu 2003-05-12
  • 打赏
  • 举报
回复
rs.next() ===>rs.previous()
试试看
qizi168 2003-05-12
  • 打赏
  • 举报
回复
//前边声明myResultSet略
ResultSetMetadata MD=myResultSet.getMetaData();
int numCols=MD.getColumnCount();//numCols为结果总数
leshui 2003-05-12
  • 打赏
  • 举报
回复
select count(*) as count from table;
alalee 2003-05-12
  • 打赏
  • 举报
回复
ResultSet rs = stmt.executeQuery("select count(*) as count888 from table1 where c888=****8");
String strcount=rs.getString("count888");
int intcount = Integer.parseInt(strcount);
hfprogramer 2003-05-12
  • 打赏
  • 举报
回复
取记录总数吗?
把SQL语句改成"select count(*) as count from table where id>10"然后取count的值,就可以了。
WorldCreater 2003-05-12
  • 打赏
  • 举报
回复
ResultSetMetadata 取到的是列数不是行数,就是说不是记录集的记录数
WorldCreater 2003-05-11
  • 打赏
  • 举报
回复
to: shkwh(龙威)
ResultSetMetaData
怎么用?

to:wangzhuo8888(wz)
这种办法好象一定要rs.last()才能取得记录集的记录数
wangzhuo8888 2003-05-11
  • 打赏
  • 举报
回复
用下面的方式打开数据库即可
stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
shkwh 2003-05-11
  • 打赏
  • 举报
回复
取得记录集的纪录数可以通过引入ResultSetMetaData可以得到记录集数目

81,114

社区成员

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

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