基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
java.sql.ResultSet
更新时间:2026-07-22 17:45:59
java.sql.ResultSet 是执行结果集的接口。
描述
java.sql.ResultSet 通常通过执行查询数据库的语句生成一个表示数据库结果集的数据表。
ResultSet 对象维护一个指向其当前数据行的游标。游标最初位于第一行之前,使用 next 方法可以将光标移动到下一行,当 ResultSet 对象中没有更多行时会返回 false,所以可以在 while 循环中使用它来遍历结果集。
默认的 ResultSet 对象是不可更新的,并且只有一个向前移动的游标。因此,只能从第一行到最后一行遍历一次结果集,但是可以生成可滚动或可更新的 ResultSet 对象,如下例所示,其中 con 是一个有效的 Connection 对象。
Statement st = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TAB1");
// rs 将是可滚动的,不会显示其他人所做的更改,可以更新。
ResultSet 接口提供了从当前行检索列值的 getter 方法(getBoolean、getLong 等)。可以使用列的索引号或列名来检索值。一般来说,使用列索引会更有效率。列从 1 开始编号。为了获得最大的可移植性,应按从左到右的顺序读取每行中的结果集列,并且每列应仅读取一次。
对于 getter 方法,JDBC 驱动程序尝试将底层数据转换为 getter 方法中指定的 Java 类型并返回合适的 Java 值。
getter 方法用作输入的列名不区分大小写。当使用列名调用 getter 方法并且多个列具有相同名称时,将返回第一个匹配的列值。列名选项在生成结果集的 SQL 查询中使用。对于查询中未明确命名的列,最好使用列号。如果使用列名,程序员可以通过 SQL 的 AS 子句来确保它们被唯一的列引用。
方法
| 方法名 | 返回值类型 | Oracle 模式是否支持 | MySQL 模式是否支持 |
|---|---|---|---|
| getString(int parameterIndex) | String | 是 | 是 |
| getString(String parameterName) | String | 是 | 是 |
| getInt(int parameterIndex) | int | 是 | 是 |
| getInt(String parameterName) | int | 是 | 是 |
| getLong(int parameterIndex) | long | 是 | 是 |
| getLong(String parameterName) | long | 是 | 是 |
| getFloat(int parameterIndex) | float | 是 | 是 |
| getFloat(String parameterName) | float | 是 | 是 |
| getDouble(int parameterIndex) | double | 是 | 是 |
| getDouble(String parameterName) | double | 是 | 是 |
| getBigDecimal(int parameterIndex) | BigDecimal | 是 | 是 |
| getBigDecimal(String parameterName) | BigDecimal | 是 | 是 |
| getBytes(int parameterIndex) | byte[] | 是 | 是 |
| getBytes(String parameterName) | byte[] | 是 | 是 |
| getDate(int parameterIndex) | Date | 是 | 是 |
| getDate(String parameterName) | Date | 是 | 是 |
| getTime(int parameterIndex) | Time | 是 | 是 |
| getTime(String parameterName) | Time | 是 | 是 |
| getTimestamp(int parameterIndex) | Timestamp | 是 | 是 |
| getTimestamp(String parameterName) | Timestamp | 是 | 是 |
| getBlob(int parameterIndex) | Blob | 是 | 是 |
| getBlob(String parameterName) | Blob | 是 | 是 |
| getClob(int parameterIndex) | Clob | 是 | 是 |
| getClob(String parameterName) | Clob | 是 | 是 |
| getMetaData() | ResultSetMetaData | 是 | 是 |
| getRowId(int columnIndex) | void | 否 | 否 |
| getRowId(String columnLabel) | RowId | 否 | 否 |
| updateRowId(int columnIndex,RowId x) | void | 否 | 否 |
| updateRowId(String columnLabel,RowId x) | void | 否 | 否 |
| getHoldability() | void | 是 | 是 |
| isClosed() | Boolean | 是 | 是 |
| updateNString(int columnIndex,String nString) | void | 是 | 是 |
| updateNString(String columnLabel,String nString) | void | 是 | 是 |
| updateNClob(int columnIndex,NClob nClob) | void | 是 | 是 |
| updateNClob(String columnLabel,NClob nClob) | void | 是 | 是 |
| getNClob(int columnIndex) | NClob | 是 | 是 |
| getNClob(String columnLabel) | NClob | 是 | 是 |
| getSQLXML(int columnIndex) | SQLXML | 否 | 否 |
| getSQLXML(String columnLabel) | SQLXML | 否 | 否 |
| updateSQLXML(int columnIndex,SQLXML xmlObject) | void | 否 | 否 |
| updateSQLXML(String columnLabel,SQLXML xmlObject) | void | 否 | 否 |
| getNString(int columnIndex) | String | 是 | 是 |
| getNString(String columnLabel) | String | 是 | 是 |
| getNCharacterStream(int columnIndex) | Reader | 是 | 是 |
| getNCharacterStream(String columnLabel) | Reader | 是 | 是 |
| updateNCharacterStream(int columnIndex,java.io.Reader x,long length) | void | 是 | 是 |
| updateNCharacterStream(String columnLabel,java.io.Reader reader, long length) | void | 是 | 是 |
| updateAsciiStream(int columnIndex,java.io.InputStream x,long length) | void | 是 | 是 |
| updateAsciiStream(String columnLabel,java.io.InputStream x, long length) | void | 是 | 是 |
| updateBinaryStream(int columnIndex,java.io.InputStream x,long length) | void | 是 | 是 |
| updateBinaryStream(String columnLabel,java.io.InputStream x,long length) | void | 是 | 是 |
| updateCharacterStream(String columnLabel,java.io.Reader reader, long length) | void | 是 | 是 |
| updateCharacterStream(int columnIndex,java.io.Reader x, int length) | void | 是 | 是 |
| updateCharacterStream(String columnLabel,java.io.Reader reader,int length) | void | 是 | 是 |
| updateCharacterStream(int columnIndex,java.io.Reader x,long length) | void | 是 | 是 |
| updateCharacterStream(int columnIndex,java.io.Reader x) | void | 是 | 是 |
| updateCharacterStream(String columnLabel,java.io.Reader reader) | void | 是 | 是 |
| updateBlob(int columnIndex,InputStream inputStream) | void | 是 | 是 |
| updateBlob(String columnLabel,InputStream inputStream) | void | 是 | 是 |
| updateClob(int columnIndex,Reader reader) | void | 是 | 是 |
| updateClob(String columnLabel,Reader reader) | void | 是 | 是 |
| updateNClob(int columnIndex,Reader reader) | void | 是 | 是 |
| updateNClob(String columnLabel,Reader reader) | void | 是 | 是 |
| getObject(int columnIndex,Class<T> type) | <T> | 是 | 是 |
| getObject(String columnLabel,Class<T> type) | <T> | 是 | 是 |
| updateObject(int columnIndex,Object x,SQLType targetSqlType, int scaleOrLength) | void | 否 | 否 |
| updateObject(String columnLabel,Object x,SQLType targetSqlType, int scaleOrLength) | void | 否 | 否 |
| updateObject(int columnIndex,Object x,SQLType targetSqlType) | void | 否 | 否 |
| updateObject(String columnLabel,Object x,SQLType targetSqlType) | void | 否 | 否 |