JDBC 中关于ResultSet 查询出来的记录数,有没有函数或常量来表示(使用)?

sylmoon 2005-09-20 11:11:29
写程序的时候常用,比如说进行某一查询
当查询出结果是存在的时候,那么显示查询结果
否则提示没有记录.

具体程序代码如:
<%@ page import="java.sql.*"%>

<%
Connection conn=null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@192.168.56.199:1521:asdb";
String user="SYSTEM";
String password="oracle01";
conn=DriverManager.getConnection(url, user, password);}
catch(Exception se1)
{se1.printStackTrace();}
String query="select * from oralce";
%>

PreparedStatement ps=conn.prepareStatement(query);
ResultSet rs=ps.executeQuery();

while(rs.next())
{do something to display....}


在这些代码里,我们如果在while(rs.next())之前用if(rs.next())...
那么rs就往下遍历了一条记录,则我们必须退回没有判断前的记录.
但是我用rs.previous() ;又不可以!

这种问题如何处理

难道非要多一次查询,如:
select count(*) from oralce?


关于ResultSet 查询出来的记录数,有没有函数或常量来表示其总共查询出了多少条记录?

感谢高手指教
...全文
465 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xizhuming 2005-11-15
  • 打赏
  • 举报
回复
rs.previous();可以用的
PreparedStatement ps=conn.prepareStatement(query);改成
PreparedStatement ps=conn.prepareStatement(query,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);试试
sylmoon 2005-11-15
  • 打赏
  • 举报
回复
..
愚夫努力 2005-09-21
  • 打赏
  • 举报
回复
再进行一次sql效率不高,还是到游标最后计数好些。
sylmoon 2005-09-21
  • 打赏
  • 举报
回复
如果这样移动游标不如再进行一次sql查询好呢?
msnsnd 2005-09-20
  • 打赏
  • 举报
回复
是不是可以用ResultSetMetaData啊?ResultSetMetaData rsmd = rs.getMetaData();
然后用ResultSetMetaData的方法判断呢。呵呵。
王洲 2005-09-20
  • 打赏
  • 举报
回复
楼上正解,ResultSet没有提供直接统计记录总数的方法
zeq258 2005-09-20
  • 打赏
  • 举报
回复
rs.last();
int a=rs.getRow();

//这里的a就是记录的总数,在这样的程序中,你最好将游标设置为
动态的,因为rs.last(),已经将游标走到了最后,如果之后还要进行
其他的操作,就需要把游标再走到前边。
皮皮 2005-09-20
  • 打赏
  • 举报
回复
ResultSetMetaData是数据结果集对吧,

好,我顶~~!

81,095

社区成员

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

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