java中的ResultSet 有next() 方法,但是好象没有last(),previous()方法,是吗?(50分)

  • 主题发起人 主题发起人 james.tane
  • 开始时间 开始时间
J

james.tane

Unregistered / Unconfirmed
GUEST, unregistred user!
java中的数据库类ResultSet 有next() 方法,但是好象没有last(),previous()方法,是吗?
如果有,为什么编译不过?
如果没,用哪个对象可以对数据库操作。
 
JDBC2.0应该有的
 
rs.last();
//将指标移至最后一笔记录
while (rs.previous())
{
%>
<TR bgcolor=#ffffff>
<TD><B><%= rs.getString("BookID") %></B></TD>
<TD><B><%= rs.getString("Title") %></B></TD>
<TD><B><%= rs.getString("Author") %></B></TD>
</TR>
<%
}
你看,JSP里有,我相信Java一定会有。
对了,如下定义。
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//载入驱动程序类别
Connection con = DriverManager.getConnection("jdbc:odbc:BookDB","","");
//建立数据库链接
//建立Statement对象, 并设置建立之ResultSet对象光标可前后移动
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery("SELECT * FROM Book");
//建立ResultSet(结果集)对象, 并执行SQL语句
rs.afterLast();
//将记录指标移至最后一笔
%>
 
jdbc2.0才支持
rs.last()是定位在最后一行
rs.afterLast()是定位在最后一行还再下一行(就是eof的位置)
 
看你的JDBC 驱动程序的文档。比如DB2的驱动程序,for java 1.1.7的也支持prev,因为他自己扩展的。
鉴于JDBC2只是标准,也不排除有些驱动程序没有实现这个部分的。
如果你是准备开发使用特定的某几个JDBC驱动的,自己试验一下就行了,如果是准备开发程序
支持通用的API,在使用这些功能之前,最好先Query一下这个JDBC是否支持。
 
多人接受答案了。
 
后退
顶部