站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题JDBC基础教程之ResultSet对象

JDBC基础教程之ResultSet对象

摘要: ResultSet 包含符合 SQL 语句中条件的所有行,并且它通过一套 get 方法提供了对这些行中数据的访问
  概述

  ResultSet 包含符合 SQL 语句中条件的所有行,并且它通过一套 get 方法(这些 get 方法可以访问当前行中的不同列)提供了对这些行中数据的访问。ResultSet.next 方法用于移动到 ResultSet 中的下一行,使下一行成为当前行。
<table cellSpacing=0 cellPadding=0 width=365 align=center border=0> <tr> <td align=right><iframe align=right marginWidth=0 marginHeight=0 src="http://images.chinabyte.com/adjs/iframe-pip/y-software-pip.html" frameBorder=0 width=360 scrolling=no height=300></iframe></td></tr> <tr> <td><iframe src="http://www.my5757.com/tj/adbottom.htm" frameBorder=0 width=365 scrolling=no height=50></iframe></td></tr></table>


  结果集一般是一个表,其中有查询所返回的列标题及相应的值。例如,如果查询为 SELECT a, b, c FROM Table1,则结果集将具有如下形式:

<table borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> <tr> <td>a b c
-------- --------- --------
12345 Cupertino CA
83472 Redmond WA
83492 Boston MA</td></tr></table>
  下面的代码段是执行 SQL 语句的示例。该 SQL 语句将返回行集合,其中列 1 为 int,列 2 为 String,而列 3 则为字节数组:

<table borderColor=#ffcc66 width="90%" align=center bgColor=#e6e4dd border=1> <tr> <td>java.sql.Statement stmt = conn.createStatement();
ResultSet r = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (r.next())
{
 // 打印当前行的值。
 int i = r.getInt("a");
 String s = r.getString("b");
 float f = r.getFloat("c");
 System.out.println("ROW = " + i + " " + s + " " + f);
}</td></tr></table>
  1、行和光标

  ResultSet 维护指向其当前数据行的光标。每调用一次 next 方法,光标向下移动一行。最初它位于第一行之前,因此第一次调用 next 将把光标置于第一行上,使它成为当前行。随着每次调用 next 导致光标向下移动一行,按照从上至下的次序获取ResultSet 行。

  在 ResultSet 对象或其父辈 Statement 对象关闭之前,光标一直保持有效。

  在 SQL 中,结果表的光标是有名字的。如果数据库允许定位更新或定位删除,则需要将光标的名字作为参数提供给更新或删除命令。可通过调用方法getCursorName 获得光标名。

  注意:不是所有的 DBMS 都支持定位更新和删除。可使用 DatabaseMetaData.supportsPositionedDelete 和 supportsPositionedUpdate 方法来检查特定连接是否支持这些操作。当支持这些操作时,DBMS/驱动程序必须确保适当锁定选定行,以使定位更新不会导致更新异常或其它并发问题。




↑返回目录
前一篇: 利用Java技术开发Web网络课件浅议
后一篇: Java中数据库事务处理的实现