1、Resultset方法Resultsetpublic interface ResultSet表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。ResultSet对象具有指向其当前数据行的指针。最初,指针被置于第一行之前。next方法将指针移动到下一行;因为该方法在ResultSet对象中没有下一行时返回false,所以可以在while循环中使用它来迭代结果集。默认的ResultSet对象不可更新,仅有一个向前移动的指针。因此,只能迭代它一次,并且只能按从第一行到最后一行的顺序进行。可以生成可滚动和/或可更新的ResultSet对象。以下代码片段(其中con为有效的Connection
2、对象)演示了如何生成可滚动且不受其他更新影响的、可更新的结果集。请参阅ResultSet字段以了解其他选项。 Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery(SELECT a, b FROM TABLE2); / rs will be scrollable, will not show changes made by others, / and will be updatab
3、leResultSet接口提供用于从当前行检索列值的获取方法(getBoolean、getLong等)。可以使用列的索引编号或列的名称检索值。一般情况下,使用列索引较为高效。列从 1 开始编号。为了获得最大的可移植性,应该按从左到右的顺序读取每行中的结果集列,而且每列只能读取一次。对于获取方法,JDBC 驱动程序尝试将基础数据转换为在获取方法中指定的 Java 类型,并返回适当的 Java 值。JDBC 规范有一个表,显示允许的从 SQL 类型到供ResultSet获取方法使用的 Java 类型的映射关系。用作获取方法的输入的列名称不区分大小写。用列名称调用获取方法时,如果多个列具有这一名称,
4、则返回第一个匹配列的值。列名称选项在生成结果集的 SQL 查询中使用列名称时使用。对于没有在查询中显式命名的列,最好使用列编号。如果使用列名称,程序员无法保证名称实际所指的就是预期的列。在 JDBC 2.0 API (JDK 1.2) 中,此接口添加了一组更新方法。关于获取方法参数的注释同样适用于更新方法的参数。可以用以下两种方式使用更新方法:1. 更新当前行中的列值。在可滚动的ResultSet对象中,可以向前和向后移动指针,将其置于绝对位置或相对于当前行的位置。以下代码片段更新ResultSet对象rs的第五行中的NAME列,然后使用方法updateRow更新用于派生rs的数据源表。2.
5、rs.absolute(5); / moves the cursor to the fifth row of rs3. rs.updateString(NAME, AINSWORTH); / updates the 4. / NAME column of row 5 to be AINSWORTH5. rs.updateRow(); / updates the row in the data source6. 7. 将列值插入到插入行中。可更新的ResultSet对象具有一个与其关联的特殊行,该行用作构建要插入的行的暂存区域 (staging area)。以下代码片段将指针移动到插入行,构建一
6、个三列的行,并使用方法insertRow将其插入到rs和数据源表中。8. rs.moveToInsertRow(); / moves cursor to the insert row9. rs.updateString(1, AINSWORTH); / updates the 10. / first column of the insert row to be AINSWORTH11. rs.updateInt(2,35); / updates the second column to be 3512. rs.updateBoolean(3, true); / updates the thir
7、d column to true13. rs.insertRow();14. rs.moveToCurrentRow();15. 当生成ResultSet对象的Statement对象关闭、重新执行或用来从多个结果的序列检索下一个结果时,ResultSet对象会自动关闭。ResultSet对象的列的编号、类型和属性由ResultSet.getMetaData方法返回的ResulSetMetaData对象提供。另请参见:Statement.executeQuery(java.lang.String),Statement.getResultSet(),ResultSetMetaData字段摘要sta
8、ticintCLOSE_CURSORS_AT_COMMIT该常量指示调用Cmit方法时应该关闭ResultSet对象。staticintCONCUR_READ_ONLY该常量指示不可以更新的ResultSet对象的并发模式。staticintCONCUR_UPDATABLE该常量指示可以更新的ResultSet对象的并发模式。staticintFETCH_FORWARD该常量指示将按正向(即从第一个到最后一个)处理结果集中的行。staticintFETCH_REVERSE该常量指示将按反向(即从最后一个到第一个)处理结果集中的行处理。staticintFETCH_UNKNOWN该常量指示结果集
9、中的行的处理顺序未知。staticintHOLD_CURSORS_OVER_COMMIT该常量指示调用Cmit方法时不应关闭ResultSet对象。staticintTYPE_FORWARD_ONLY该常量指示指针只能向前移动的ResultSet对象的类型。staticintTYPE_SCROLL_INSENSITIVE该常量指示可滚动但通常不受其他的更改影响的ResultSet对象的类型。staticintTYPE_SCROLL_SENSITIVE该常量指示可滚动并且通常受其他的更改影响的ResultSet对象的类型。方法摘要booleanabsolute(introw)将指针移动到此Res
10、ultSet对象的给定行编号。voidafterLast()将指针移动到此ResultSet对象的末尾,正好位于最后一行之后。voidbeforeFirst()将指针移动到此ResultSet对象的开头,正好位于第一行之前。voidcancelRowUpdates()取消对ResultSet对象中的当前行所作的更新。voidclearWarnings()清除在此ResultSet对象上报告的所有警告。voidclose()立即释放此ResultSet对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。voiddeleteRow()从此ResultSet对象和底层数据库中删除当
11、前行。intfindColumn(StringcolumnName)将给定的ResultSet列名称映射到其ResultSet列索引。booleanfirst()将指针移动到此ResultSet对象的第一行。ArraygetArray(inti)以 Java 编程语言中Array对象的形式检索此ResultSet对象的当前行中指定列的值。ArraygetArray(StringcolName)以 Java 编程语言中Array对象的形式检索此ResultSet对象的当前行中指定列的值。InputStreamgetAsciiStream(intcolumnIndex)以 ASCII 字符流的形式
12、检索此ResultSet对象的当前行中指定列的值。InputStreamgetAsciiStream(StringcolumnName)以 ASCII 字符流的形式检索此ResultSet对象的当前行中指定列的值。BigDecimalgetBigDecimal(intcolumnIndex)以具有全精度的java.math.BigDecimal的形式检索此ResultSet对象的当前行中指定列的值。BigDecimalgetBigDecimal(intcolumnIndex, intscale)已过时。BigDecimalgetBigDecimal(StringcolumnName)以具有全精
13、度的java.math.BigDecimal的形式检索此ResultSet对象的当前行中指定列的值。BigDecimalgetBigDecimal(StringcolumnName, intscale)已过时。InputStreamgetBinaryStream(intcolumnIndex)以未解释字节的二进制流的形式检索此ResultSet对象的当前行中指定列的值。InputStreamgetBinaryStream(StringcolumnName)以未解释的byte流的形式检索此ResultSet对象的当前行中指定列的值。BlobgetBlob(inti)以 Java 编程语言中Blo
14、b对象的形式检索此ResultSet对象的当前行中指定列的值。BlobgetBlob(StringcolName)以 Java 编程语言中Blob对象的形式检索此ResultSet对象的当前行中指定列的值。booleangetBoolean(intcolumnIndex)以 Java 编程语言中boolean的形式检索此ResultSet对象的当前行中指定列的值。booleangetBoolean(StringcolumnName)以 Java 编程语言中boolean的形式检索此ResultSet对象的当前行中指定列的值。bytegetByte(intcolumnIndex)以 Java 编
15、程语言中byte的形式检索此ResultSet对象的当前行中指定列的值。bytegetByte(StringcolumnName)以 Java 编程语言中byte的形式检索此ResultSet对象的当前行中指定列的值。bytegetBytes(intcolumnIndex)以 Java 编程语言中byte数组的形式检索此ResultSet对象的当前行中指定列的值。bytegetBytes(StringcolumnName)以 Java 编程语言中byte数组的形式检索此ResultSet对象的当前行中指定列的值。ReadergetCharacterStream(intcolumnIndex)以
16、java.io.Reader对象的形式检索此ResultSet对象的当前行中指定列的值。ReadergetCharacterStream(StringcolumnName)以java.io.Reader对象的形式检索此ResultSet对象的当前行中指定列的值。ClobgetClob(inti)以 Java 编程语言中Clob对象的形式检索此ResultSet对象的当前行中指定列的值。ClobgetClob(StringcolName)以 Java 编程语言中Clob对象的形式检索此ResultSet对象的当前行中指定列的值。intgetConcurrency()检索此ResultSet对象的
17、并发模式。StringgetCursorName()检索此ResultSet对象使用的 SQL 指针的名称。DategetDate(intcolumnIndex)以 Java 编程语言中java.sql.Date对象的形式检索此ResultSet对象的当前行中指定列的值。DategetDate(intcolumnIndex,Calendarcal)以 Java 编程语言中java.sql.Date对象的形式检索此ResultSet对象的当前行中指定列的值。DategetDate(StringcolumnName)以 Java 编程语言中的java.sql.Date对象的形式检索此ResultS
18、et对象的当前行中指定列的值。DategetDate(StringcolumnName,Calendarcal)以 Java 编程语言中java.sql.Date对象的形式检索此ResultSet对象的当前行中指定列的值。doublegetDouble(intcolumnIndex)以 Java 编程语言中double的形式检索此ResultSet对象的当前行中指定列的值。doublegetDouble(StringcolumnName)以 Java 编程语言中double的形式检索此ResultSet对象的当前行中指定列的值。intgetFetchDirection()检索此ResultSe
19、t对象的获取方向。intgetFetchSize()检索此ResultSet对象的获取大小。floatgetFloat(intcolumnIndex)以 Java 编程语言中float的形式检索此ResultSet对象的当前行中指定列的值。floatgetFloat(StringcolumnName)以 Java 编程语言中float的形式检索此ResultSet对象的当前行中指定列的值。intgetInt(intcolumnIndex)以 Java 编程语言中int的形式检索此ResultSet对象的当前行中指定列的值。intgetInt(StringcolumnName)以 Java 编程
20、语言中int的形式检索此ResultSet对象的当前行中指定列的值。longgetLong(intcolumnIndex)以 Java 编程语言中long的形式检索此ResultSet对象的当前行中指定列的值。longgetLong(StringcolumnName)以 Java 编程语言中long的形式检索此ResultSet对象的当前行中指定列的值。ResultSetMetaDatagetMetaData()检索此ResultSet对象的列的编号、类型和属性。ObjectgetObject(intcolumnIndex)以 Java 编程语言中Object的形式获取此ResultSet对象
21、的当前行中指定列的值。ObjectgetObject(inti,MapString,Classmap)以 Java 编程语言中Object的形式检索此ResultSet对象的当前行中指定列的值。ObjectgetObject(StringcolumnName)以 Java 编程语言中Object的形式获取此ResultSet对象的当前行中指定列的值。ObjectgetObject(StringcolName,MapString,Classmap)以 Java 编程语言中Object的形式检索此ResultSet对象的当前行中指定列的值。RefgetRef(inti)以 Java 编程语言中Re
22、f对象的形式检索此ResultSet对象的当前行中指定列的值。RefgetRef(StringcolName)以 Java 编程语言中Ref对象的形式检索此ResultSet对象的当前行中指定列的值。intgetRow()检索当前行编号。shortgetShort(intcolumnIndex)以 Java 编程语言中short的形式检索此ResultSet对象的当前行中指定列的值。shortgetShort(StringcolumnName)以 Java 编程语言中short的形式检索此ResultSet对象的当前行中指定列的值。StatementgetStatement()检索生成此Res
23、ultSet对象的Statement对象。StringgetString(intcolumnIndex)以 Java 编程语言中String的形式检索此ResultSet对象的当前行中指定列的值。StringgetString(StringcolumnName)以 Java 编程语言中String的形式检索此ResultSet对象的当前行中指定列的值。TimegetTime(intcolumnIndex)以 Java 编程语言中java.sql.Time对象的形式检索此ResultSet对象的当前行中指定列的值。TimegetTime(intcolumnIndex,Calendarcal)以
24、Java 编程语言中java.sql.Time对象的形式检索此ResultSet对象的当前行中指定列的值。TimegetTime(StringcolumnName)以 Java 编程语言中java.sql.Time对象的形式检索此ResultSet对象的当前行中指定列的值。TimegetTime(StringcolumnName,Calendarcal)以 Java 编程语言中java.sql.Time对象的形式检索此ResultSet对象的当前行中指定列的值。TimestampgetTimestamp(intcolumnIndex)以 Java 编程语言中java.sql.Timestamp
25、对象的形式检索此ResultSet对象的当前行中指定列的值。TimestampgetTimestamp(intcolumnIndex,Calendarcal)以 Java 编程语言中java.sql.Timestamp对象的形式检索此ResultSet对象的当前行中指定列的值。TimestampgetTimestamp(StringcolumnName)以java.sql.Timestamp对象的形式检索此ResultSet对象的当前行中指定列的值。TimestampgetTimestamp(StringcolumnName,Calendarcal)以 Java 编程语言中java.sql.T
26、imestamp对象的形式检索此ResultSet对象的当前行中指定列的值。intgetType()检索此ResultSet对象的类型。InputStreamgetUnicodeStream(intcolumnIndex)已过时。使用getCharacterStream取代getUnicodeStreamInputStreamgetUnicodeStream(StringcolumnName)已过时。使用getCharacterStream代替URLgetURL(intcolumnIndex)以 Java 编程语言中.URL对象的形式检索此ResultSet对象的当前行中指定列的值。URLgetURL(StringcolumnName)以 Java 编程语言中.URL对象的形式检索此ResultSet对象的当前行中指定列的值。SQLWarninggetWarnings()检索此ResultSet对象上的调用报
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1