Resultset方法.docx

上传人:b****5 文档编号:5047124 上传时间:2022-12-12 格式:DOCX 页数:88 大小:41.12KB
下载 相关 举报
Resultset方法.docx_第1页
第1页 / 共88页
Resultset方法.docx_第2页
第2页 / 共88页
Resultset方法.docx_第3页
第3页 / 共88页
Resultset方法.docx_第4页
第4页 / 共88页
Resultset方法.docx_第5页
第5页 / 共88页
点击查看更多>>
下载资源
资源描述

Resultset方法.docx

《Resultset方法.docx》由会员分享,可在线阅读,更多相关《Resultset方法.docx(88页珍藏版)》请在冰豆网上搜索。

Resultset方法.docx

Resultset方法

Resultset

publicinterfaceResultSet

 

表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

ResultSet 对象具有指向其当前数据行的指针。

最初,指针被置于第一行之前。

next 方法将指针移动到下一行;因为该方法在 ResultSet 对象中没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。

默认的 ResultSet 对象不可更新,仅有一个向前移动的指针。

因此,只能迭代它一次,并且只能按从第一行到最后一行的顺序进行。

可以生成可滚动和/或可更新的 ResultSet 对象。

以下代码片段(其中 con 为有效的 Connection对象)演示了如何生成可滚动且不受其他更新影响的、可更新的结果集。

请参阅 ResultSet 字段以了解其他选项。

Statementstmt=con.createStatement(

ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_UPDATABLE);

ResultSetrs=stmt.executeQuery("SELECTa,bFROMTABLE2");

//rswillbescrollable,willnotshowchangesmadebyothers,

//andwillbeupdatable

 

ResultSet 接口提供用于从当前行检索列值的获取方法(getBoolean、getLong 等)。

可以使用列的索引编号或列的名称检索值。

一般情况下,使用列索引较为高效。

列从1开始编号。

为了获得最大的可移植性,应该按从左到右的顺序读取每行中的结果集列,而且每列只能读取一次。

对于获取方法,JDBC驱动程序尝试将基础数据转换为在获取方法中指定的Java类型,并返回适当的Java值。

JDBC规范有一个表,显示允许的从SQL类型到供 ResultSet 获取方法使用的Java类型的映射关系。

 

用作获取方法的输入的列名称不区分大小写。

用列名称调用获取方法时,如果多个列具有这一名称,则返回第一个匹配列的值。

列名称选项在生成结果集的SQL查询中使用列名称时使用。

对于没有在查询中显式命名的列,最好使用列编号。

如果使用列名称,程序员无法保证名称实际所指的就是预期的列。

在JDBC2.0API(JDK1.2)中,此接口添加了一组更新方法。

关于获取方法参数的注释同样适用于更新方法的参数。

可以用以下两种方式使用更新方法:

1.更新当前行中的列值。

在可滚动的 ResultSet 对象中,可以向前和向后移动指针,将其置于绝对位置或相对于当前行的位置。

以下代码片段更新 ResultSet 对象 rs 的第五行中的 NAME 列,然后使用方法 updateRow 更新用于派生 rs 的数据源表。

2.rs.absolute(5);//movesthecursortothefifthrowofrs

3.rs.updateString("NAME","AINSWORTH");//updatesthe

4.//NAMEcolumnofrow5tobeAINSWORTH

5.rs.updateRow();//updatestherowinthedatasource

6.

7.将列值插入到插入行中。

可更新的 ResultSet 对象具有一个与其关联的特殊行,该行用作构建要插入的行的暂存区域(stagingarea)。

以下代码片段将指针移动到插入行,构建一个三列的行,并使用方法 insertRow 将其插入到 rs 和数据源表中。

8.rs.moveToInsertRow();//movescursortotheinsertrow

9.rs.updateString(1,"AINSWORTH");//updatesthe

10.//firstcolumnoftheinsertrowtobeAINSWORTH

11.rs.updateInt(2,35);//updatesthesecondcolumntobe35

12.rs.updateBoolean(3,true);//updatesthethirdcolumntotrue

13.rs.insertRow();

14.rs.moveToCurrentRow();

15.

当生成 ResultSet 对象的 Statement 对象关闭、重新执行或用来从多个结果的序列检索下一个结果时,ResultSet对象会自动关闭。

ResultSet 对象的列的编号、类型和属性由 ResultSet.getMetaData 方法返回的 ResulSetMetaData 对象提供。

 

 

另请参见:

Statement.executeQuery(java.lang.String), Statement.getResultSet(), ResultSetMetaData

字段摘要

static int

CLOSE_CURSORS_AT_COMMIT 

          该常量指示调用 Cmit 方法时应该关闭 ResultSet 对象。

static int

CONCUR_READ_ONLY 

          该常量指示不可以更新的 ResultSet 对象的并发模式。

static int

CONCUR_UPDATABLE 

          该常量指示可以更新的 ResultSet 对象的并发模式。

static int

FETCH_FORWARD 

          该常量指示将按正向(即从第一个到最后一个)处理结果集中的行。

static int

FETCH_REVERSE 

          该常量指示将按反向(即从最后一个到第一个)处理结果集中的行处理。

static int

FETCH_UNKNOWN 

          该常量指示结果集中的行的处理顺序未知。

static int

HOLD_CURSORS_OVER_COMMIT 

          该常量指示调用 Cmit 方法时不应关闭 ResultSet 对象。

static int

TYPE_FORWARD_ONLY 

          该常量指示指针只能向前移动的 ResultSet 对象的类型。

static int

TYPE_SCROLL_INSENSITIVE 

          该常量指示可滚动但通常不受其他的更改影响的 ResultSet 对象的类型。

static int

TYPE_SCROLL_SENSITIVE 

          该常量指示可滚动并且通常受其他的更改影响的 ResultSet 对象的类型。

 

方法摘要

 boolean

absolute(int row) 

          将指针移动到此 ResultSet 对象的给定行编号。

 void

afterLast() 

          将指针移动到此 ResultSet 对象的末尾,正好位于最后一行之后。

 void

beforeFirst() 

          将指针移动到此 ResultSet 对象的开头,正好位于第一行之前。

 void

cancelRowUpdates() 

          取消对 ResultSet 对象中的当前行所作的更新。

 void

clearWarnings() 

          清除在此 ResultSet 对象上报告的所有警告。

 void

close() 

          立即释放此 ResultSet 对象的数据库和JDBC资源,而不是等待该对象自动关闭时发生此操作。

 void

deleteRow() 

          从此 ResultSet 对象和底层数据库中删除当前行。

 int

findColumn(String columnName) 

          将给定的 ResultSet 列名称映射到其 ResultSet 列索引。

 boolean

first() 

          将指针移动到此 ResultSet 对象的第一行。

 Array

getArray(int i) 

          以Java编程语言中 Array 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Array

getArray(String colName) 

          以Java编程语言中 Array 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 InputStream

getAsciiStream(int columnIndex) 

          以ASCII字符流的形式检索此 ResultSet 对象的当前行中指定列的值。

 InputStream

getAsciiStream(String columnName) 

          以ASCII字符流的形式检索此 ResultSet 对象的当前行中指定列的值。

 BigDecimal

getBigDecimal(int columnIndex) 

          以具有全精度的 java.math.BigDecimal 的形式检索此 ResultSet 对象的当前行中指定列的值。

 BigDecimal

getBigDecimal(int columnIndex,int scale) 

          已过时。

  

 BigDecimal

getBigDecimal(String columnName) 

          以具有全精度的 java.math.BigDecimal 的形式检索此 ResultSet 对象的当前行中指定列的值。

 BigDecimal

getBigDecimal(String columnName,int scale) 

          已过时。

  

 InputStream

getBinaryStream(int columnIndex) 

          以未解释字节的二进制流的形式检索此 ResultSet 对象的当前行中指定列的值。

 InputStream

getBinaryStream(String columnName) 

          以未解释的 byte 流的形式检索此 ResultSet 对象的当前行中指定列的值。

 Blob

getBlob(int i) 

          以Java编程语言中 Blob 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Blob

getBlob(String colName) 

          以Java编程语言中 Blob 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 boolean

getBoolean(int columnIndex) 

          以Java编程语言中 boolean 的形式检索此 ResultSet 对象的当前行中指定列的值。

 boolean

getBoolean(String columnName) 

          以Java编程语言中 boolean 的形式检索此 ResultSet 对象的当前行中指定列的值。

 byte

getByte(int columnIndex) 

          以Java编程语言中 byte 的形式检索此 ResultSet 对象的当前行中指定列的值。

 byte

getByte(String columnName) 

          以Java编程语言中 byte 的形式检索此 ResultSet 对象的当前行中指定列的值。

 byte[]

getBytes(int columnIndex) 

          以Java编程语言中 byte 数组的形式检索此 ResultSet 对象的当前行中指定列的值。

 byte[]

getBytes(String columnName) 

          以Java编程语言中 byte 数组的形式检索此 ResultSet 对象的当前行中指定列的值。

 Reader

getCharacterStream(int columnIndex) 

          以 java.io.Reader 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Reader

getCharacterStream(String columnName) 

          以 java.io.Reader 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Clob

getClob(int i) 

          以Java编程语言中 Clob 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Clob

getClob(String colName) 

          以Java编程语言中 Clob 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 int

getConcurrency() 

          检索此 ResultSet 对象的并发模式。

 String

getCursorName() 

          检索此 ResultSet 对象使用的SQL指针的名称。

 Date

getDate(int columnIndex) 

          以Java编程语言中 java.sql.Date 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Date

getDate(int columnIndex, Calendar cal) 

          以Java编程语言中 java.sql.Date 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Date

getDate(String columnName) 

          以Java编程语言中的 java.sql.Date 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Date

getDate(String columnName, Calendar cal) 

          以Java编程语言中 java.sql.Date 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 double

getDouble(int columnIndex) 

          以Java编程语言中 double 的形式检索此 ResultSet 对象的当前行中指定列的值。

 double

getDouble(String columnName) 

          以Java编程语言中 double 的形式检索此 ResultSet 对象的当前行中指定列的值。

 int

getFetchDirection() 

          检索此 ResultSet 对象的获取方向。

 int

getFetchSize() 

          检索此 ResultSet 对象的获取大小。

 float

getFloat(int columnIndex) 

          以Java编程语言中 float 的形式检索此 ResultSet 对象的当前行中指定列的值。

 float

getFloat(String columnName) 

          以Java编程语言中 float 的形式检索此 ResultSet 对象的当前行中指定列的值。

 int

getInt(int columnIndex) 

          以Java编程语言中 int 的形式检索此 ResultSet 对象的当前行中指定列的值。

 int

getInt(String columnName) 

          以Java编程语言中 int 的形式检索此 ResultSet 对象的当前行中指定列的值。

 long

getLong(int columnIndex) 

          以Java编程语言中 long 的形式检索此 ResultSet 对象的当前行中指定列的值。

 long

getLong(String columnName) 

          以Java编程语言中 long 的形式检索此 ResultSet 对象的当前行中指定列的值。

 ResultSetMetaData

getMetaData() 

          检索此 ResultSet 对象的列的编号、类型和属性。

 Object

getObject(int columnIndex) 

          以Java编程语言中 Object 的形式获取此 ResultSet 对象的当前行中指定列的值。

 Object

getObject(int i, Map

>> map) 

          以Java编程语言中 Object 的形式检索此 ResultSet 对象的当前行中指定列的值。

 Object

getObject(String columnName) 

          以Java编程语言中 Object 的形式获取此 ResultSet 对象的当前行中指定列的值。

 Object

getObject(String colName, Map

>> map) 

          以Java编程语言中 Object 的形式检索此 ResultSet 对象的当前行中指定列的值。

 Ref

getRef(int i) 

          以Java编程语言中 Ref 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Ref

getRef(String colName) 

          以Java编程语言中 Ref 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 int

getRow() 

          检索当前行编号。

 short

getShort(int columnIndex) 

          以Java编程语言中 short 的形式检索此 ResultSet 对象的当前行中指定列的值。

 short

getShort(String columnName) 

          以Java编程语言中 short 的形式检索此 ResultSet 对象的当前行中指定列的值。

 Statement

getStatement() 

          检索生成此 ResultSet 对象的 Statement 对象。

 String

getString(int columnIndex) 

          以Java编程语言中 String 的形式检索此 ResultSet 对象的当前行中指定列的值。

 String

getString(String columnName) 

          以Java编程语言中 String 的形式检索此 ResultSet 对象的当前行中指定列的值。

 Time

getTime(int columnIndex) 

          以Java编程语言中 java.sql.Time 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Time

getTime(int columnIndex, Calendar cal) 

          以Java编程语言中 java.sql.Time 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Time

getTime(String columnName) 

          以Java编程语言中 java.sql.Time 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Time

getTime(String columnName, Calendar cal) 

          以Java编程语言中 java.sql.Time 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Timestamp

getTimestamp(int columnIndex) 

          以Java编程语言中 java.sql.Timestamp 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Timestamp

getTimestamp(int columnIndex, Calendar cal) 

          以Java编程语言中 java.sql.Timestamp 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Timestamp

getTimestamp(String columnName) 

          以 java.sql.Timestamp 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 Timestamp

getTimestamp(String columnName, Calendar cal) 

          以Java编程语言中 java.sql.Timestamp 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 int

getType() 

          检索此 ResultSet 对象的类型。

 InputStream

getUnicodeStream(int columnIndex) 

          已过时。

 使用 getCharacterStream 取代 getUnicodeStream

 InputStream

getUnicodeStream(String columnName) 

          已过时。

 使用 getCharacterStream 代替

 URL

getURL(int columnIndex) 

          以Java编程语言中 .URL 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 URL

getURL(String columnName) 

          以Java编程语言中 .URL 对象的形式检索此 ResultSet 对象的当前行中指定列的值。

 SQLWarning

getWarnings() 

          检索此 ResultSet 对象上的调用报

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1