IResultSet 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示数据库结果集的数据表,该表通常通过执行查询数据库的语句生成。
[Android.Runtime.Register("java/sql/ResultSet", "", "Java.Sql.IResultSetInvoker")]
public interface IResultSet : IDisposable, Java.Interop.IJavaPeerable, Java.Sql.IWrapper
[<Android.Runtime.Register("java/sql/ResultSet", "", "Java.Sql.IResultSetInvoker")>]
type IResultSet = interface
interface IWrapper
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 派生
- 属性
- 实现
注解
表示数据库结果集的数据表,该表通常通过执行查询数据库的语句生成。
对象 ResultSet 维护指向其当前数据行的游标。 最初,光标位于第一行之前。 该方法 next 将游标移到下一行,因为它在 false 对象中 ResultSet 没有更多行时返回,因此可以在循环中 while 使用它来循环访问结果集。
默认 ResultSet 对象不可更新,并且具有仅向前移动的游标。 因此,只能循环访问它一次,仅从第一行循环访问最后一行。 可以生成 ResultSet 可滚动和/或可更新的对象。 以下代码片段是 con 一个有效的 Connection 对象,演示如何生成可滚动且不区分他人更新的结果集,以及是否可更新。 请参阅 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 updatable
该ResultSet接口提供 getter 方法(getBooleangetLong等等),用于从当前行检索列值。 可以使用列的索引号或列的名称检索值。 一般情况下,使用列索引将更高效。 列从 1 开始编号。 为了达到最大可移植性,应按从左到右的顺序读取每行的结果集列,并且每列应只读取一次。
对于 getter 方法,JDBC 驱动程序尝试将基础数据转换为 getter 方法中指定的Java类型,并返回合适的Java值。 JDBC 规范包含一个表,其中显示了允许从 SQL 类型到可由 getter 方法使用的ResultSetJava类型。
用作 getter 方法输入的列名不区分大小写。 使用列名和多个列调用 getter 方法时,将返回第一个匹配列的值。 在生成结果集的 SQL 查询中使用列名时,可以使用列名称选项。 对于查询中未显式命名的列,最好使用列号。 如果使用列名,程序员应注意确保它们唯一引用预期列,这可以通过 SQL AS 子句得到保证。
JDBC 2.0 API(Java< sup><字体大小=-2 TM</font></sup> 2>SDK,Standard Edition,版本 1.2)中向此接口添加了一组更新程序方法。 有关 getter 方法的参数的注释也适用于 updater 方法的参数。
updater 方法可通过两种方式使用: <ol><LI>以更新当前行中的列值。 在可 ResultSet 滚动对象中,光标可以向后和向前移动、绝对位置或相对于当前行的位置。 以下代码片段更新NAME对象rs第五行ResultSet中的列,然后使用该方法updateRow更新从rs中派生的数据源表。
rs.absolute(5); // moves the cursor to the fifth row of rs
rs.updateString("NAME", "AINSWORTH"); // updates the
// <code>NAME</code> column of row 5 to be <code>AINSWORTH</code>
rs.updateRow(); // updates the row in the data source
<用于将列值插入插入行的 LI>。 可 ResultSet 更新对象具有一个与之关联的特殊行,该行充当要插入的行的临时区域。 以下代码片段将光标移动到插入行,生成三列行,并使用该方法insertRow将其rs插入数据源表中。
rs.moveToInsertRow(); // moves cursor to the insert row
rs.updateString(1, "AINSWORTH"); // updates the
// first column of the insert row to be <code>AINSWORTH</code>
rs.updateInt(2,35); // updates the second column to be <code>35</code>
rs.updateBoolean(3, true); // updates the third column to <code>true</code>
rs.insertRow();
rs.moveToCurrentRow();
</ol>
ResultSet当生成对象的对象关闭、重新执行或用于从多个结果序列中检索下一个结果时Statement,将自动关闭对象。
对象的列的数量、类型和属性 ResultSet 由 ResultSetMetaData 方法返回 ResultSet.getMetaData 的对象提供。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
字段
| 名称 | 说明 |
|---|---|
| CloseCursorsAtCommit |
常量,指示提交当前事务时,将关闭具有此可保留性的打开 |
| ConcurReadOnly |
指示可能未更新对象的并发模式 |
| ConcurUpdatable |
指示可能更新的对象并发模式 |
| FetchForward |
指示结果集中的行将以向前方向处理行的常量;first-to-last。 |
| FetchReverse |
指示结果集中的行将以相反方向处理行的常量;last-to-first。 |
| FetchUnknown |
指示结果集中行的处理顺序未知的常量。 |
| HoldCursorsOverCommit |
指示提交当前事务时,具有此可保留性的打开 |
| TypeForwardOnly |
指示其游标只能向前移动的对象的类型 |
| TypeScrollInsensitive |
常量,该常量指示对象的类型,该对象 |
| TypeScrollSensitive |
常量,该常量指示对象的类型 |
属性
| 名称 | 说明 |
|---|---|
| Concurrency |
获取此 |
| CursorName |
获取此 |
| FetchDirection |
获取为此 |
| FetchSize |
获取此 |
| Handle |
获取基础 Android 对象的 JNI 值。 (继承自 IJavaObject) |
| Holdability |
返回此结果集的可保留性: HoldCursorsOverCommit 或 CloseCursorsAtCommit。 |
| IsAfterLast |
获取游标是否位于最后一 |
| IsBeforeFirst |
获取游标是否位于第 |
| IsClosed |
如果此结果集已关闭,则返回 true,否则返回 false。 |
| IsFirst |
获取游标是否位于第一行 。 |
| IsLast |
获取游标是否位于最后一行 |
| JniIdentityHashCode |
返回包装实例的值 |
| JniManagedPeerState |
托管对等方的状态。 (继承自 IJavaPeerable) |
| JniPeerMembers |
成员访问和调用支持。 (继承自 IJavaPeerable) |
| MetaData |
获取此 |
| PeerReference |
返回JniObjectReference包装的Java对象实例。 (继承自 IJavaPeerable) |
| Row |
获取中 |
| Statement |
获取生成此 |
| Type |
获取 |
| Warnings |
获取由此 |
方法
| 名称 | 说明 |
|---|---|
| Absolute(Int32) |
将光标移动到此 |
| AfterLast() |
将光标移到此 |
| BeforeFirst() |
将光标移到此 |
| CancelRowUpdates() |
取消对此 |
| ClearWarnings() |
清除针对此 |
| Close() |
立即释放此 |
| DeleteRow() |
从此 |
| Disposed() |
在释放实例时调用。 (继承自 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果没有对此实例的未完成引用,则调用 |
| Finalized() |
在实例完成时调用。 (继承自 IJavaPeerable) |
| FindColumn(String) |
将给定 |
| First() |
将光标移动到此 |
| GetArray(Int32) |
检索此 |
| GetArray(String) |
检索此 |
| GetAsciiStream(Int32) |
检索此 |
| GetAsciiStream(String) |
检索此 |
| GetBigDecimal(Int32, Int32) |
已过时.
检索此 |
| GetBigDecimal(Int32) |
以完全精度检索此 |
| GetBigDecimal(String, Int32) |
已过时.
检索此 |
| GetBigDecimal(String) |
以完全精度检索此 |
| GetBinaryStream(Int32) |
检索此 |
| GetBinaryStream(String) |
检索此 |
| GetBlob(Int32) |
检索此 |
| GetBlob(String) |
检索此 |
| GetBoolean(Int32) |
检索此 |
| GetBoolean(String) |
检索此 |
| GetByte(Int32) |
检索此 |
| GetByte(String) |
检索此 |
| GetBytes(Int32) |
检索此 |
| GetBytes(String) |
检索此 |
| GetCharacterStream(Int32) |
检索此 |
| GetCharacterStream(String) |
检索此 |
| GetClob(Int32) |
检索此 |
| GetClob(String) |
检索此 |
| GetDate(Int32, Calendar) |
检索此 |
| GetDate(Int32) |
检索此 |
| GetDate(String, Calendar) |
检索此 |
| GetDate(String) |
检索此 |
| GetDouble(Int32) |
检索此 |
| GetDouble(String) |
检索此 |
| GetFloat(Int32) |
检索此 |
| GetFloat(String) |
检索此 |
| GetInt(Int32) |
检索此 |
| GetInt(String) |
检索此 |
| GetLong(Int32) |
检索此 |
| GetLong(String) |
检索此 |
| GetNCharacterStream(Int32) |
检索此 |
| GetNCharacterStream(String) |
检索此 |
| GetNClob(Int32) |
检索此 |
| GetNClob(String) |
检索此 |
| GetNString(Int32) |
检索此 |
| GetNString(String) |
检索此 |
| GetObject(Int32, IDictionary<String,Class>) |
检索此 |
| GetObject(Int32) |
获取此 |
| GetObject(String, IDictionary<String,Class>) |
检索此 |
| GetObject(String) |
获取此 |
| GetRef(Int32) |
检索此 |
| GetRef(String) |
检索此 |
| GetRowId(Int32) |
检索此 |
| GetRowId(String) |
检索此 |
| GetShort(Int32) |
检索此 |
| GetShort(String) |
检索此 |
| GetSQLXML(Int32) |
检索当前行中指定 |
| GetSQLXML(String) |
检索当前行中指定 |
| GetString(Int32) |
检索此 |
| GetString(String) |
检索此 |
| GetTime(Int32, Calendar) |
检索此 |
| GetTime(Int32) |
检索此 |
| GetTime(String, Calendar) |
检索此 |
| GetTime(String) |
检索此 |
| GetTimestamp(Int32, Calendar) |
检索此 |
| GetTimestamp(Int32) |
检索此 |
| GetTimestamp(String, Calendar) |
检索此 |
| GetTimestamp(String) |
检索此 |
| GetUnicodeStream(Int32) |
已过时.
检索此 |
| GetUnicodeStream(String) |
已过时.
检索此 |
| GetURL(Int32) |
检索此 |
| GetURL(String) |
检索此 |
| InsertRow() |
将插入行的内容插入到此 |
| IsWrapperFor(Class) |
如果此参数实现接口参数,或者直接或间接为执行该操作的对象包装器,则返回 true。 (继承自 IWrapper) |
| Last() |
将光标移动到此 |
| MoveToCurrentRow() |
将光标移动到记住的游标位置,通常是当前行。 |
| MoveToInsertRow() |
将光标移动到插入行。 |
| Next() |
将光标从当前位置向右移动一行。 |
| Previous() |
将光标移到此 |
| RefreshRow() |
使用数据库中的最新值刷新当前行。 |
| Relative(Int32) |
移动游标的相对行数(正或负数)。 |
| RowDeleted() |
检索是否已删除行。 |
| RowInserted() |
检索当前行是否已插入。 |
| RowUpdated() |
检索当前行是否已更新。 |
| SetJniIdentityHashCode(Int32) |
设置由 |
| SetJniManagedPeerState(JniManagedPeerStates) |
表示数据库结果集的数据表,该表通常通过执行查询数据库的语句生成。 (继承自 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
设置由 |
| UnregisterFromRuntime() |
取消注册此实例,使运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。 (继承自 IJavaPeerable) |
| Unwrap(Class) |
返回一个对象,该对象实现给定接口以允许访问非标准方法或代理未公开的标准方法。 (继承自 IWrapper) |
| UpdateArray(Int32, IArray) |
使用 |
| UpdateArray(String, IArray) |
使用 |
| UpdateAsciiStream(Int32, Stream, Int32) |
使用 ascii 流值更新指定的列,该值将具有指定的字节数。 |
| UpdateAsciiStream(Int32, Stream, Int64) |
使用 ascii 流值更新指定的列,该值将具有指定的字节数。 |
| UpdateAsciiStream(Int32, Stream) |
使用 ascii 流值更新指定列。 |
| UpdateAsciiStream(String, Stream, Int32) |
使用 ascii 流值更新指定的列,该值将具有指定的字节数。 |
| UpdateAsciiStream(String, Stream, Int64) |
使用 ascii 流值更新指定的列,该值将具有指定的字节数。 |
| UpdateAsciiStream(String, Stream) |
使用 ascii 流值更新指定列。 |
| UpdateBigDecimal(Int32, BigDecimal) |
使用 |
| UpdateBigDecimal(String, BigDecimal) |
使用 |
| UpdateBinaryStream(Int32, Stream, Int32) |
使用具有指定字节数的二进制流值更新指定的列。 |
| UpdateBinaryStream(Int32, Stream, Int64) |
使用具有指定字节数的二进制流值更新指定的列。 |
| UpdateBinaryStream(Int32, Stream) |
使用二进制流值更新指定的列。 |
| UpdateBinaryStream(String, Stream, Int32) |
使用具有指定字节数的二进制流值更新指定的列。 |
| UpdateBinaryStream(String, Stream, Int64) |
使用具有指定字节数的二进制流值更新指定的列。 |
| UpdateBinaryStream(String, Stream) |
使用二进制流值更新指定的列。 |
| UpdateBlob(Int32, IBlob) |
使用 |
| UpdateBlob(Int32, Stream, Int64) |
使用给定的输入流更新指定的列,该流将具有指定的字节数。 |
| UpdateBlob(Int32, Stream) |
使用给定的输入流更新指定的列。 |
| UpdateBlob(String, IBlob) |
使用 |
| UpdateBlob(String, Stream, Int64) |
使用给定的输入流更新指定的列,该流将具有指定的字节数。 |
| UpdateBlob(String, Stream) |
使用给定的输入流更新指定的列。 |
| UpdateBoolean(Int32, Boolean) |
使用 |
| UpdateBoolean(String, Boolean) |
使用 |
| UpdateByte(Int32, SByte) |
使用 |
| UpdateByte(String, SByte) |
使用 |
| UpdateBytes(Int32, Byte[]) |
使用 |
| UpdateBytes(String, Byte[]) |
使用字节数组值更新指定的列。 |
| UpdateCharacterStream(Int32, Reader, Int32) |
使用具有指定字节数的字符流值更新指定的列。 |
| UpdateCharacterStream(Int32, Reader, Int64) |
使用具有指定字节数的字符流值更新指定的列。 |
| UpdateCharacterStream(Int32, Reader) |
使用字符流值更新指定的列。 |
| UpdateCharacterStream(String, Reader, Int32) |
使用具有指定字节数的字符流值更新指定的列。 |
| UpdateCharacterStream(String, Reader, Int64) |
使用具有指定字节数的字符流值更新指定的列。 |
| UpdateCharacterStream(String, Reader) |
使用字符流值更新指定的列。 |
| UpdateClob(Int32, IClob) |
使用 |
| UpdateClob(Int32, Reader, Int64) |
使用给定 |
| UpdateClob(Int32, Reader) |
使用给定 |
| UpdateClob(String, IClob) |
使用 |
| UpdateClob(String, Reader, Int64) |
使用给定 |
| UpdateClob(String, Reader) |
使用给定 |
| UpdateDate(Int32, Date) |
使用 |
| UpdateDate(String, Date) |
使用 |
| UpdateDouble(Int32, Double) |
使用 |
| UpdateDouble(String, Double) |
使用 |
| UpdateFloat(Int32, Single) |
使用 |
| UpdateFloat(String, Single) |
使用 |
| UpdateInt(Int32, Int32) |
使用值 |
| UpdateInt(String, Int32) |
使用值 |
| UpdateLong(Int32, Int64) |
使用 |
| UpdateLong(String, Int64) |
使用 |
| UpdateNCharacterStream(Int32, Reader, Int64) |
使用具有指定字节数的字符流值更新指定的列。 |
| UpdateNCharacterStream(Int32, Reader) |
使用字符流值更新指定的列。 |
| UpdateNCharacterStream(String, Reader, Int64) |
使用具有指定字节数的字符流值更新指定的列。 |
| UpdateNCharacterStream(String, Reader) |
使用字符流值更新指定的列。 |
| UpdateNClob(Int32, INClob) |
使用 |
| UpdateNClob(Int32, Reader, Int64) |
使用给定 |
| UpdateNClob(Int32, Reader) |
使用给定的列更新指定列
|
| UpdateNClob(String, INClob) |
使用 |
| UpdateNClob(String, Reader, Int64) |
使用给定 |
| UpdateNClob(String, Reader) |
使用给定 |
| UpdateNString(Int32, String) |
使用 |
| UpdateNString(String, String) |
使用 |
| UpdateNull(Int32) |
使用 |
| UpdateNull(String) |
使用 |
| UpdateObject(Int32, Object, Int32) |
使用值 |
| UpdateObject(Int32, Object) |
使用值 |
| UpdateObject(String, Object, Int32) |
使用值 |
| UpdateObject(String, Object) |
使用值 |
| UpdateRef(Int32, IRef) |
使用 |
| UpdateRef(String, IRef) |
使用 |
| UpdateRow() |
使用此 |
| UpdateRowId(Int32, IRowId) |
使用 |
| UpdateRowId(String, IRowId) |
使用 |
| UpdateShort(Int32, Int16) |
使用 |
| UpdateShort(String, Int16) |
使用 |
| UpdateSQLXML(Int32, ISQLXML) |
使用 |
| UpdateSQLXML(String, ISQLXML) |
使用 |
| UpdateString(Int32, String) |
使用 |
| UpdateString(String, String) |
使用 |
| UpdateTime(Int32, Time) |
使用 |
| UpdateTime(String, Time) |
使用 |
| UpdateTimestamp(Int32, Timestamp) |
使用 |
| UpdateTimestamp(String, Timestamp) |
使用 |
| WasNull() |
报告最后一列读取的值是否为 SQL |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
表示数据库结果集的数据表,该表通常通过执行查询数据库的语句生成。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |