ResultSet詳解(轉)



 

ResultSet用法集錦

 
     結果集(ResultSet)是數據中查詢結果返回的一種對象,可以說結果集是一個存儲查詢結果的對象,但是結果集並不僅僅具有存儲的功能,他同時還具有操縱數據的功能,可能完成對數據的更新等.

     結果集讀取數據的方法主要是getXXX(),他的參數可以是整型表示第幾列(是從1開始的),還可以是列名。返回的是對應的XXX類型的值。如果對應那列 是空值,XXX是對象的話返回XXX型的空值,如果XXX是數字類型,如Float等則返回0,boolean返回false.使用getString()可以返回所有的列的值,不過返回的都是字符串類型的。XXX可以代表的類型有: 基本的數據類型如整型(int),布爾型(Boolean),浮點型(Float,Double)等,比特型(byte),還包括一些特殊的類型,如:日 期類型(java.sql.Date),時間類型(java.sql.Time),時間戳類型(java.sql.Timestamp),大數型 (BigDecimal和BigInteger等)等。還可以使用getArray(intcolindex/String columnname),通過這個方法獲得當前行中,colindex所在列的元素組成的對象的數組。使用 getAsciiStream(intcolindex/String colname)可以獲得該列對應的當前行的ascii流。也就是說所有的getXXX方法都是對當前行進行操作。

     結果集從其使用的特點上 可以分為四類,這四類的結果集的所具備的特點都是和Statement語句的創建有關,因為結果集是通過Statement語句執行后產生的,所以可以 說,結果集具備何種特點,完全決定於Statement,當然我是說下面要將的四個特點,在Statement創建時包括三種類型。首先是無參數類型的, 它對應的就是下面要介紹的基本的ResultSet對應的Statement。下面的代碼中用到的Connection並沒有對其初始化,變量conn代 表的就是Connection對應的對象。SqlStr代表的是響應的SQL語句.

 

1、最基本的ResultSet。
    之所以說是最基本的ResultSet是因為這個ResultSet它起到的作用就是完成了查詢結果的存儲功能,而且只能讀取一次,不能夠來回的滾動讀取。這種結果集的創建方式如下:

Statement st = conn.CreateStatement()
ResultSet rs = Statement.excuteQuery(sqlStr);

由於這種結果集不支持滾動的讀取功能,所以如果獲得這樣一個結果集,只能使用它里面的next()方法,逐個的讀去數據.

 

2、可滾動的ResultSet類型。
    這個類型支持前后滾動取得紀錄next()、previous(),回到第一行first(),同時還支持要取的ResultSet中的第幾行 absolute(int n),以及移動到相對當前行的第幾行relative(int n),要實現這樣的ResultSet在創建Statement時用如下的方法。

Statement st =conn.createStatement(int resultSetType, int resultSetConcurrency)
ResultSet rs = st.executeQuery(sqlStr)

其中兩個參數的意義是:
resultSetType是設置ResultSet對象的類型標示可滾動,或者是不可滾動。取值如下:

 

 ResultSet.TYPE_FORWARD_ONLY

只能向前滾動(這是默認值)

     ResultSet.TYPE_SCROLL_INSENSITIVE

 

這兩個方法都能夠實現任意的前后滾動,使用各種移動的ResultSet指針的方法。二者的區別在於前者對於修改不敏感,而后者對於修改敏感。

 

 

 Result.TYPE_SCROLL_SENSITIVE

 

resultSetConcurency是設置ResultSet對象能夠修改的,取值如下:

 

ResultSet.CONCUR_READ_ONLY

 

設置為只讀類型的參數。

ResultSet.CONCUR_UPDATABLE

 

設置為可修改類型的參數。

所以如果只是想要可以滾動的類型的Result只要把Statement如下賦值就行了。

Statement st =conn.createStatement(Result.TYPE_SCROLL_INSENITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = st.excuteQuery(sqlStr);

用這個Statement執行的查詢語句得到的就是可滾動的ResultSet。

 

3、可更新的ResultSet
    這樣的ResultSet對象可以完成對數據庫中表的修改,但是我知道ResultSet只是相當於數據庫中表的視圖,所以並不是所有的ResultSet只要設置了可更新就能夠完成更新的,能夠完成更新的ResultSet的SQL語句必須要具備如下的屬性:
    a、只引用了單個表。
    b、不含有join或者group by子句。
    c、那些列中要包含主關鍵字。
    具有上述條件的,可更新的ResultSet可以完成對數據的修改,可更新的結果集的創建方法是:
Statement st =createstatement(Result.TYPE_SCROLL_INSENSITIVE,Result.CONCUR_UPDATABLE)
這 樣的Statement的執行結果得到的就是可更新的結果集。更新的方法是,把ResultSet的游標移動到你要更新的行,然后調用 updateXXX(),這個方法XXX的含義和getXXX()是相同的。updateXXX()方法有兩個參數,第一個是要更新的列,可以是列名或者 序號。第二個是要更新的數據,這個數據類型要和XXX相同。每完成對一行的update要調用updateRow()完成對數據庫的寫入,而且是在 ResultSet的游標沒有離開該修改行之前,否則修改將不會被提交。
    使用updateXXX方法還可以完成插入操作。但是首先要介紹兩個方法:
    moveToInsertRow()是把ResultSet移動到插入行,這個插入行是表中特殊的一行,不需要指定具體那一行,只要調用這個方法系統會自動移動到那一行的。
    moveToCurrentRow() 這是把ResultSet移動到記憶中的某個行,通常當前行。如果沒有使用insert操作,這個方法沒有什么效果,如果使用了insert操作,這個方 法用於返回到insert操作之前的那一行,離開插入行,當然也可以通過next(),previous()等方法離開插入行。
    要完成對 數據庫的插入,首先調用moveToInsertRow()移動到插入行,然后調用updateXXX的方法完成對各列數據的更新,完成更新后和更新操作 一樣,要寫到數據庫,不過這里使用的是insertRow(),也要保證在該方法執行之前ResultSet沒有離開插入列,否則插入不被執行,並且對插 入行的更新將丟失.

 

4、可保持的ResultSet
     正常情況下如果使用Statement執行完一個查詢,又去執行另一個查詢時這 時候第一個查詢的結果集就會被關閉,也就是說,所有的Statement的查詢對應的結果集是一個,如果調用Connection的commit()方法 也會關閉結果集。可保持性就是指當ResultSet的結果被提交時,是被關閉還是不被關閉。JDBC2.0和1.0提供的都是提交后ResultSet 就會被關閉。不過在JDBC3.0中,我們可以設置ResultSet是否關閉。要完成這樣的ResultSet的對象的創建,要使用的 Statement的創建要具有三個參數,這個Statement的創建方式也就是,我所說的Statement的第三種創建方式。如下:

 

Statementst=createStatement(int resultsetscrollable,int resultsetupdateable,intresultsetSetHoldability)
ResultSet rs = st.excuteQuery(sqlStr);

 

前兩個參數和createStatement方法中的參數是完全相同的,這里只介紹第三個參數:
resultSetHoldability表示在結果集提交后結果集是否打開,取值有兩個:

 

ResultSet.HOLD_CURSORS_OVER_COMMIT

 

表示修改提交時ResultSet不關閉.

ResultSet.CLOSE_CURSORS_AT_COMMIT

 

表示修改提交時ResultSet關閉.

 

不過這種功能只是在JDBC3.0的驅動下才能成立。

 

總結:

JDBCAPI 2.0/3.0ResultSet記錄集的
JDBC API 2.0/3.0中ResultSet記錄集的簡便實用的新特性

1 新定義了若干個常數,這些常數用於指定ResultSet的類型游標移動的方向等性質,如下所示:  

 

FETCH_FORWARD

該常數的作用是指定處理記錄集中行的順序,是由前到后即從第一行開始處理一直到最后一行.

 

FETCH_REVERSE

該常數的作用是指定處理記錄集中行的順序,是由后到前即從最后一行開始處理一直到第一行.

 

FETCH_UNKNOWN

該常數的作用是不指定處理記錄集中行的順序,由JDBC 驅動程序和數據庫系統決定.

 

TYPE_FORWARD_ONLY

該常數的作用是指定數據庫游標的移動方向是向前,不允許向后移動即只能使ResultSet 接口的next()方法而不能使用previous()方法否則會產生錯誤.

 

 

TYPE_SCROLL_INSENSITIVE

該常數的作用是指定數據庫游標可以在記錄集中前后移動,並且當前數據庫用戶獲取的記錄集對其他用戶的操作不敏感;就是說,當前用戶正在瀏覽記錄集中的數據,與此同時,其他用戶更新了數據庫中的數據,但是當前用戶所獲取的記錄集中的數據不會受到任何影響。

 

 

 

TYPE_SCROLL_SENSITIVE

該 常數的作用是指定數據庫游標可以在記錄集中前后移動,並且當前數據庫用戶獲取的記錄集對其他用戶的操作敏感,就是說,當前用戶正在瀏覽記錄集,但是其它用 戶的操作使數據庫中的數據發生了變化,當前用戶所獲取的記錄集中的數據也會同步發生變化,這樣有可能會導致非常嚴重的錯誤產生建議慎重使用該常數。

 

CONCUR_READ_ONLY

該常數的作用是指定當前記錄集的協作方式(concurrencymode)為只讀;一旦使用了這個常數,那么用戶就不可以更新記錄集中的數據。

 

CONCUR_UPDATABLE

該常數的作用是指定當前記錄集的協作方式(concurrencymode)為可以更新;一旦使用了這個常數,那么用戶就可以使用updateXXX()等方法更新記。

CLOSE_CURSORS_AT_COMMIT

 

表示修改提交時ResultSet關閉.

HOLD_CURSORS_OVER_COMMIT

 

表示修改提交時ResultSet不關閉.



2 ResultSet 接口提供了一整套的定位方法

這些可以在記錄集中定位到任意一行:

public boolean absolute(int row): 該方法的作用是將記錄集中的某一行設定為當前行,亦即將數據庫游標移動到指定的行,參數row 指定了目標行的行號,這是絕對的行號,由記錄集的第一行開始計算不是相對的行號.

 

public boolean relative(int rows): 該方法的作用也是將記錄集中的某一行設定為當前行,但是它的參數rows 表示目標行相對於當前行的行號。

 

public boolean first(); 該方法的作用是將當前行定位到數據庫記錄集的第一行。

 

public boolean last(); 該方法的作用剛好和first()方法相反。

 

public boolean isFirst(); 該方法的作用是檢查當前行是否記錄集的第一行,如果是返回true, 否則返回false.

 

public boolean isLast(); 該方法的作用是檢查當前行是否記錄集的最后一行,如果是返回true ,否則返回false。

 

public void afterLast(); 該方法的作用是將數據庫游標移到記錄集的最后,位於記錄集最后一行的后面,如果該記錄集不包含任何的行該方法不產生作用。

 

public void beforeFirst(); 該方法的作用是將數據庫游標移到記錄集的最前面,位於記錄集第一行的前面,如果記錄集不包含任何的行該方法不產生作用。

 

public boolean isAfterLast(); 該方法檢查數據庫游標是否處於記錄集的最后面,如果是返回true ,否則返回false。

 

public boolean isBeforeFirst(); 該方法檢查數據庫游標是否處於記錄集的最前面,如果是返回true ,否則返回false。

 

 

public boolean next(); 該方法的作用是將數據庫游標向前移動一位,使得下一行成為當前行,當剛剛打開記錄集對象時,數據庫游標的位置在記錄集的最前面,第一次使用next()方 法將會使數據庫游標定位到記錄集的第一行,第二次使用next()方法將會使數據庫游標定位到記錄集的第二行,以此類推。

 

 

public boolean previous(); 該方法的作用是將數據庫游標向后移動一位,使得上一行成為當前行.

 

 

3ResultSet 接口添加了對行操作的支持(最令人心動之處)

修 改了的記錄集接口(ResultSet 接口)的方法,使它支持可以滾動的記錄集,即數據庫游標可以在返回的記錄集對象中自由地向前或向后滾動,或者定位到某個特殊的行。利用ResultSet 接口中定義的新方法,JSP/Servlet 程序員可以用Java語言來更新記錄集,比如插入記錄,更新某行的數據,而不是靠執行SQL 語句,這樣就大大方便了程序員的開發工作,享受Java編程的樂趣了。
ResultSet 接口中新添加的部分方法如下所示:

 

public boolean rowDeleted(); 如果當前記錄集的某行被刪除了,那么記錄集中將會留出一個空位;調用rowDeleted()方法,如果探測到空位的存在,那么就返回true; 如果沒有探測到空位的存在,就返回false 值.

 

public boolean rowInserted(); 如果當前記錄集中插入了一個新行,該方法將返回true ,否則返回false。

 

public boolean rowUpdated(); 如果當前記錄集的當前行的數據被更新,該方法返回true ,否則返回false。

 

public void insertRow(); 該方法將執行插入一個新行到當前記錄集的操作。

 

public void updateRow(); 該方法將更新當前記錄集當前行的數據。

 

public void deleteRow(); 該方法將刪除當前記錄集的當前行。

 

public void updateString(int columnIndex ,String x); 該方法更新當前記錄集當前行某列的值,該列的數據類型是String(指Java 數據類型是String,與之對應的JDBC 數據類型是VARCHAR 或NVARCHAR 等數據類型) 。該方法的參數columnIndex 指定所要更新的列的列索引,第一列的列索引是1 ,以此類推,第二個參數x 代表新的值,這個方法並不執行數據庫操作,需要執行insertRow()方法或者updateRow()方法以后,記錄集和數據庫中的數據才能夠真正更新。

 

public void updateString(String columnName ,String x); 該方法和上面介紹的同名方法差不多,不過該方法的第一個參數是columnName ,代表需要更新的列的列名,而不是columnIndex。

 



4.基本操作:
往數據庫當前記錄集插入新行的操作流程如下:
1 調用moveToInsertRow()方法;
2 調用updateXXX()方法指定插入行各列的值;
3 調用insertRow()方法往數據庫中插入新的行。

更新數據庫中某個記錄的值(某行的值)的方法是:
1 定位到需要修改的行(使用absolute()relative()等方法定位);
2 使用相應updateXXX()方法設定某行某列的新值;XXX 所代表的Java數據類型,必須可以映射為某列的JDBC數據類型,如果希望rollback 該項操作,請在調用updateRow()方法以前,使用cancelRowUpdates()方法,這個方法可以將某行某列的值復原;
3 使用updateRow()方法完成UPDATE的操作。

刪除記錄集中某行(亦即刪除某個記錄)的方法:
1 定位到需要修改的行(使用absolute()relative()等方法定位);
2 使用deleteRow()

刪除記錄集中某行(亦即刪除某個記錄)的方法:
1 定位到需要修改的行(使用absolute()relative()等方法定位);
2 使用deleteRow()方法.

 

 

JDBC的ResultSet接口(查詢操作)、PreparedStatement接口重構增刪改查(含SQL注入的解釋)

首先需要回顧一下上一篇文章中的內容:MySQL數據庫學習筆記(八)----JDBC入門及簡單增刪改數據庫的操作

一、ResultSet接口的介紹:

對數據庫的查詢操作,一般需要返回查詢結果,在程序中,JDBC為我們提供了ResultSet接口來專門處理查詢結果集。

Statement通過以下方法執行一個查詢操作:

ResultSet executeQuery(String sql) throws SQLException 

單詞Query就是查詢的意思。函數的返回類型是ResultSet,實際上查詢的數據並不在ResultSet里面,依然是在數據庫里,ResultSet中的next()方法類似於一個指針,指向查詢的結果,然后不斷遍歷。所以這就要求連接不能斷開。

ResultSet接口常用方法:

  • boolean next()     遍歷時,判斷是否有下一個結果
  • int getInt(String columnLabel)
  • int getInt(int columnIndex)
  • Date getDate(String columnLabel)
  • Date getDate(int columnIndex)
  • String getString(String columnLabel)
  • String getString(int columnIndex)

 

二、ResultSet接口實現查詢操作:

步驟如下:(和上一篇博文中的增刪改的步驟類似哦)

  • 1、加載數據庫驅動程序:Class.forName(驅動程序類)
  • 2、通過用戶名密碼和連接地址獲取數據庫連接對象:DriverManager.getConnection(連接地址,用戶名,密碼)
  • 3、構造查詢SQL語句
  • 4、創建Statement實例:Statement stmt = conn.createStatement()
  • 5、執行查詢SQL語句,並返回結果:ResultSet rs = stmt.executeQuery(sql)
  • 6、處理結果
  • 7、關閉連接:rs.close()、stmt.close()、conn.close()

我們來舉個例子吧,來查詢下面的這個表:

55ceaaf2-b1f8-420a-89a6-37f502b48192

新建工程JDBC02,依舊先導入jar包。然后新建類,完整版代碼如下:

 1 package com.vae.jdbc;  2  3 import java.sql.Connection;  4 import java.sql.DriverManager;  5 import java.sql.ResultSet;  6 import java.sql.SQLException;  7 import java.sql.Statement;  8  9 public class JdbcQuey { 10 11 12 //數據庫連接地址 13 private final static String URL = "jdbc:mysql://localhost:3306/JDBCdb"; 14 //用戶名 15 public final static String USERNAME = "root"; 16 //密碼 17 public final static String PASSWORD = "smyh"; 18 //加載的驅動程序類(這個類就在我們導入的jar包中) 19 public final static String DRIVER = "com.mysql.jdbc.Driver"; 20 21 public static void main(String[] args) { 22 // TODO Auto-generated method stub 23  query(); 24 25  } 26 27 28 //方法:查詢操作 29 public static void query(){ 30 try { 31  Class.forName(DRIVER); 32 Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); 33 String sql = "select id,name,age,description from person"; 34 Statement state = conn.createStatement(); 35 //執行查詢並返回結果集 36 ResultSet rs = state.executeQuery(sql); 37 while(rs.next()){ //通過next來索引:判斷是否有下一個記錄 38 //rs.getInt("id"); //方法:int java.sql.ResultSet.getInt(String columnLabel) throws SQLException 39 int id = rs.getInt(1); //方法:int java.sql.ResultSet.getInt(int columnIndex) throws SQLException 40 41 String name = rs.getString(2); 42 int age = rs.getInt(3); 43 String description = rs.getString(4); 44 System.out.println("id="+id+",name="+name+",age="+age+",description="+description); 45  } 46  rs.close(); 47  state.close(); 48  conn.close(); 49 50 } catch (ClassNotFoundException e) { 51  e.printStackTrace(); 52 } catch (SQLException e) { 53  e.printStackTrace(); 54  } 55  } 56 }

關於代碼的解釋,可以看上一篇博客。上方代碼的核心部分是37至45行。

37行:next()函數:通過next來索引,判斷是否有下一個記錄。一開始就指向內存的首地址,即第一條記錄,如果返回值為true,指針會自動指向下一條記錄。

38、39行:getInt(String columnLabel)或者getInt(int columnIndex)代表的是列的索引,參數可以是列的名字,也可以用編號來表示,我們一般采用后者。編號的順序是按照33行sql語句中列的順序來定的。

程序運行后,后台輸出如下:

a9422041-b446-4dd1-9972-25c10304a4d6

上一篇博客+以上部分,實現了對數據庫的簡單增刪改查的操作。其實這種拼接的方式很不好:既麻煩又不安全。我們接下來進行改進。

 

三、使用PreparedStatement重構增刪改查(推薦)

概念:表示預編譯的SQL語句的對象。SQL語句被預編譯並存儲在PreparedStatement對象中。然后可以使用此對象多次高效地執行該語句。PreparedStatement是Statement的一個接口。

作用:靈活處理sql語句中的變量。

舉例:

以下面的這張數據庫表為例:

d0d81c8d-285b-45a7-8c4b-3bb2beb00b69

新建Java工程文件JDBC3。新建一個Person類,方便在主方法里進行操作。Person類的代碼如下:

package com.vae.jdbc; public class Person { private int id; private String name; private int age; private String description; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Person(int id, String name, int age, String description) { super(); this.id = id; this.name = name; this.age = age; this.description = description; } public Person(String name, int age, String description) { super(); this.name = name; this.age = age; this.description = description; } public Person() { super(); } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age + ", description=" + description + "]"; } }

上方是一個簡單的Person類,並添加set和get方法以及構造方法,無需多解釋。

插入操作:

現在在主類JDBCtest中實現插入操作,完整代碼如下:

 1 package com.vae.jdbc;  2  3 import java.sql.Connection;  4 import java.sql.DriverManager;  5 import java.sql.PreparedStatement;  6 import java.sql.SQLException;  7  8 public class JDBCtest {  9 10 11 //數據庫連接地址 12 public final static String URL = "jdbc:mysql://localhost:3306/JDBCdb"; 13 //用戶名 14 public final static String USERNAME = "root"; 15 //密碼 16 public final static String PASSWORD = "smyh"; 17 //驅動類 18 public final static String DRIVER = "com.mysql.jdbc.Driver"; 19 20 21 public static void main(String[] args) { 22 // TODO Auto-generated method stub 23 Person p = new Person("smyhvae",22,"我是在Java代碼中插入的數據"); 24  insert(p); 25  } 26 27 28 29 //方法:使用PreparedStatement插入數據 30 public static void insert(Person p){ 31 32 try { 33  Class.forName(DRIVER); 34 Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); 35 String sql = "insert into person(name,age,description)values(?,?,?)"; 36 PreparedStatement ps = conn.prepareStatement(sql); 37 //設置占位符對應的值 38 ps.setString(1, p.getName()); 39 ps.setInt(2, p.getAge()); 40 ps.setString(3, p.getDescription()); 41 42  ps.executeUpdate(); 43 44  ps.close(); 45  conn.close(); 46 47 48 } catch (ClassNotFoundException e) { 49  e.printStackTrace(); 50 } catch (SQLException e) { 51  e.printStackTrace(); 52  } 53  } 54 }

我們來看一下上面的代碼是怎么實現代碼的優化的:

30行:將整個person對象進去,代表的是數據庫中的一條記錄。

35行:問號可以理解為占位符,有幾個問號就代表要插入幾個列,這樣看來sql代碼就比較簡潔

38至40行:給35行的問號設值,參數1代表第一個問號的位置,以此類推

然后我們在main主方法中給Person設具體的值(23行),通過insert()方法就插入到數據庫中去了。數據庫中就多了一條記錄:

868b266f-4a7c-4018-998d-85befb15bbc0

更新操作:

代碼和上方類似,修改操作的方法如下:

 1     //方法:使用PreparedStatement更新數據  2 public static void update(Person p){  3 try {  4  Class.forName(DRIVER);  5 Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);  6 String sql = "update person set name=?,age=?,description=? where id=?";  7 PreparedStatement ps = conn.prepareStatement(sql);  8 //設置占位符對應的值  9 ps.setString(1, p.getName()); 10 ps.setInt(2, p.getAge()); 11 ps.setString(3, p.getDescription()); 12 ps.setInt(4, p.getId()); 13 14  ps.executeUpdate(); 15 16  ps.close(); 17  conn.close(); 18 19 20 } catch (ClassNotFoundException e) { 21  e.printStackTrace(); 22 } catch (SQLException e) { 23  e.printStackTrace(); 24  } 25 }

因為在這里有四個問號的占位符,所以稍后再main方法中記得使用四個參數的Person構造方法,傳遞四個參數。

刪除操作:

代碼和上方類似,方法如下:

 1     //方法:使用PreparedStatement刪除數據  2 public static void delete(int id){  3 try {  4  Class.forName(DRIVER);  5 Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);  6 String sql = "delete from person where id=?";  7 PreparedStatement ps = conn.prepareStatement(sql);  8 //設置占位符對應的值  9 ps.setInt(1, id); 10 11  ps.executeUpdate(); 12 13  ps.close(); 14  conn.close(); 15 16 17 } catch (ClassNotFoundException e) { 18  e.printStackTrace(); 19 } catch (SQLException e) { 20  e.printStackTrace(); 21  } 22 }

這里的方法中,傳入的參數是是一個id。

查詢操作:

 1     // 使用PreparedStatement查詢數據  2 public static Person findById(int id){  3 Person p = null;  4 try {  5  Class.forName(DRIVER);  6 Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);  7 String sql = "select name,age,description from person where id=?";  8 PreparedStatement ps = conn.prepareStatement(sql);  9 //設置占位符對應的值 10 ps.setInt(1, id); 11 12 ResultSet rs = ps.executeQuery(); 13 if(rs.next()){ 14 p = new Person(); 15  p.setId(id); 16 p.setName(rs.getString(1)); 17 p.setAge(rs.getInt(2)); 18 p.setDescription(rs.getString(3)); 19 //把 java.sql.Date 與 java.util.Date之間的轉換 20 // java.util.Date date = rs.getDate(4); 21 // ps.setDate(4, new java.sql.Date(date.getTime())); 22 23  } 24  rs.close(); 25  ps.close(); 26  conn.close(); 27 28 29 } catch (ClassNotFoundException e) { 30  e.printStackTrace(); 31 } catch (SQLException e) { 32  e.printStackTrace(); 33  } 34 return p; 35 }

查詢操作稍微麻煩一點,在方法中傳入的參數是id,方法的返回值是查詢的結果,即Person類。

 

五、PreparedStatement小結:

在JDBC應用中,如果你已經是稍有水平開發者,你就應該始終以PreparedStatement代替Statement。也就是說,在任何時候都不要使用Statement。

基於以下的原因:

  • 一、代碼的可讀性和可維護性
  • 二、PreparedStatement可以盡最大可能提高性能
  • 三、最重要的一點是極大地提高了安全性

如果使用Statement而不使用PreparedStatement,則會造成一個安全性問題:SQL注入

來看一下SQL注入是怎么回事。現在有如下的一張用戶名密碼表user:

1cbad809-eef2-43f7-9044-631c7b94838d

我們在執行如下sql語句進行查詢:

select id,name,pwd from user where name='xxx' and pwd = 'x' or '1'='1'

 

竟能出奇地查到所有的用戶名、密碼信息:

9bde5b94-960e-4894-bc99-eec64b1f3ee8

因為1=1永遠是成立的,所以這句話永遠都成立。所以在Java代碼中,可以利用這個漏洞,將上方的藍框部分內容當做pwd的變量的內容。來舉個反例:使用Statement寫一個登陸的操作:

 1     //登 錄(Statement:會造成SQL注入的安全性問題)  2 public static void login(String name,String pwd){  3 Person p = null;  4 try {  5  Class.forName(DRIVER);  6 Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);  7 // String sql = "select id,name,pwd from user where name='' and pwd=''";  8  9 StringBuffer sql = new StringBuffer("select id,name,pwd from user where name='"); 10 sql.append(name).append("' and pwd='").append(pwd).append("'"); 11 Statement ps = conn.createStatement(); 12 13 ResultSet rs = ps.executeQuery(sql.toString()); 14 if(rs.next()){ 15  } 16  rs.close(); 17  ps.close(); 18  conn.close(); 19 20 21 } catch (ClassNotFoundException e) { 22  e.printStackTrace(); 23 } catch (SQLException e) { 24  e.printStackTrace(); 25  } 26 }

上方代碼中的第10行就是采用字符串拼接的方式,就會造成SQL注入的安全性問題。

而如果使用PreparedStatement中包含問號的sql語句,程序就會先對這句sql語句進行判斷,就不會出現字符串拼接的現象了。

 

最后附上本文中,PreparedStatement接口重構增刪改查的完整版代碼:

  1 package com.vae.jdbc;  2  3 import java.sql.Connection;  4 import java.sql.DriverManager;  5 import java.sql.PreparedStatement;  6 import java.sql.ResultSet;  7 import java.sql.SQLException;  8  9 public class JDBCtest {  10  11  12 //數據庫連接地址  13 public final static String URL = "jdbc:mysql://localhost:3306/JDBCdb";  14 //用戶名  15 public final static String USERNAME = "root";  16 //密碼  17 public final static String PASSWORD = "smyh";  18 //驅動類  19 public final static String DRIVER = "com.mysql.jdbc.Driver";  20  21  22 public static void main(String[] args) {  23 // TODO Auto-generated method stub  24 Person p = new Person();  25 //insert(p);  26 //update(p);  27 //delete(3);  28 p = findById(2);  29  System.out.println(p);  30  }  31  32  33 //方法:使用PreparedStatement插入數據  34 public static void insert(Person p){  35  36 try {  37  Class.forName(DRIVER);  38 Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);  39 String sql = "insert into person(name,age,description)values(?,?,?)";  40 PreparedStatement ps = conn.prepareStatement(sql);  41 //設置占位符對應的值  42 ps.setString(1, p.getName());  43 ps.setInt(2, p.getAge());  44 ps.setString(3, p.getDescription());  45  46  ps.executeUpdate();  47  48  ps.close();  49  conn.close();  50  51  52 } catch (ClassNotFoundException e) {  53  e.printStackTrace();  54 } catch (SQLException e) {  55  e.printStackTrace();  56  }  57  }  58  59  60 //方法:使用PreparedStatement更新數據  61 public static void update(Person p){  62 try {  63  Class.forName(DRIVER);  64 Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);  65 String sql = "update person set name=?,age=?,description=? where id=?";  66 PreparedStatement ps = conn.prepareStatement(sql);  67 //設置占位符對應的值  68 ps.setString(1, p.getName());  69 ps.setInt(2, p.getAge());  70 ps.setString(3, p.getDescription());  71 ps.setInt(4, p.getId());  72  73  ps.executeUpdate();  74  75  ps.close();  76  conn.close();  77  78  79 } catch (ClassNotFoundException e) {  80  e.printStackTrace();  81 } catch (SQLException e) {  82  e.printStackTrace();  83  }  84  }  85 86 87 //方法:使用PreparedStatement刪除數據 88 public static void delete(int id){ 89 try { 90 Class.forName(DRIVER); 91 Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); 92 String sql = "delete from person where id=?"; 93 PreparedStatement ps = conn.prepareStatement(sql); 94 //設置占位符對應的值 95 ps.setInt(1, id); 96 97 ps.executeUpdate(); 98 99 ps.close(); 100 conn.close(); 101 102 103 } catch (ClassNotFoundException e) { 104 e.printStackTrace(); 105 } catch (SQLException e) { 106 e.printStackTrace(); 107 } 108 } 109 110 111 // 使用PreparedStatement查詢數據 112 public static Person findById(int id){ 113 Person p = null; 114 try { 115 Class.forName(DRIVER); 116 Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); 117 String sql = "select name,age,description from person where id=?"; 118 PreparedStatement ps = conn.prepareStatement(sql); 119 //設置占位符對應的值 120 ps.setInt(1, id); 121 122 ResultSet rs = ps.executeQuery(); 123 if(rs.next()){ 124 p = new Person(); 125 p.setId(id); 126 p.setName(rs.getString(1)); 127 p.setAge(rs.getInt(2)); 128 p.setDescription(rs.getString(3)); 129 //把 java.sql.Date 與 java.util.Date之間的轉換 130 // java.util.Date date = rs.getDate(4); 131 // ps.setDate(4, new java.sql.Date(date.getTime())); 132 133 } 134 rs.close(); 135 ps.close(); 136 conn.close(); 137 138 139 } catch (ClassNotFoundException e) { 140 e.printStackTrace(); 141 } catch (SQLException e) { 142 e.printStackTrace(); 143 } 144 return p; 145 } 146 147 148 }

 

 

 

 

 

java.sql.resultset方法與使用技巧

public interface ResultSet

表示數據庫結果集的數據表,通常通過執行查詢數據庫的語句生成。

ResultSet 對象具有指向其當前數據行的指針。最初,指針被置於第一行之前。next 方法將指針移動到下一行;因為該方法在 ResultSet 對象中沒有下一行時返回 false,所以可以在 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 接口提供用於從當前行檢索列值的 獲取方法( getBooleangetLong 等)。可以使用列的索引編號或列的名稱檢索值。一般情況下,使用列索引較為高效。列從 1 開始編號。為了獲得最大的可移植性,應該按從左到右的順序讀取每行中的結果集列,而且每列只能讀取一次。

對於獲取方法,JDBC 驅動程序嘗試將基礎數據轉換為在獲取方法中指定的 Java 類型,並返回適當的 Java 值。JDBC 規范有一個表,顯示允許的從 SQL 類型到供 ResultSet 獲取方法使用的 Java 類型的映射關系。

 

用作獲取方法的輸入的列名稱不區分大小寫。用列名稱調用獲取方法時,如果多個列具有這一名稱,則返回第一個匹配列的值。列名稱選項在生成結果集的 SQL 查詢中使用列名稱時使用。對於沒有在查詢中顯式命名的列,最好使用列編號。如果使用列名稱,程序員無法保證名稱實際所指的就是預期的列。

在 JDBC 2.0 API (JDK 1.2) 中,此接口添加了一組更新方法。關於獲取方法參數的注釋同樣適用於更新方法的參數。

可以用以下兩種方式使用更新方法:

  1. 更新當前行中的列值。在可滾動的 ResultSet 對象中,可以向前和向后移動指針,將其置於絕對位置或相對於當前行的位置。以下代碼片段更新 ResultSet 對象 rs 的第五行中的 NAME 列,然后使用方法 updateRow 更新用於派生 rs 的數據源表。
           rs.absolute(5); // moves the cursor to the fifth row of rs
           rs.updateString("NAME", "AINSWORTH"); // updates the 
              // NAME column of row 5 to be AINSWORTH
           rs.updateRow(); // updates the row in the data source
    
     
  2. 將列值插入到插入行中。可更新的 ResultSet 對象具有一個與其關聯的特殊行,該行用作構建要插入的行的暫存區域 (staging area)。以下代碼片段將指針移動到插入行,構建一個三列的行,並使用方法 insertRow 將其插入到 rs 和數據源表中。
           rs.moveToInsertRow(); // moves cursor to the insert row
           rs.updateString(1, "AINSWORTH"); // updates the 
              // first column of the insert row to be AINSWORTH
           rs.updateInt(2,35); // updates the second column to be 35
           rs.updateBoolean(3, true); // updates the third column to true
           rs.insertRow();
           rs.moveToCurrentRow();
    
     

當生成 ResultSet 對象的 Statement 對象關閉、重新執行或用來從多個結果的序列檢索下一個結果時,ResultSet 對象會自動關閉。

ResultSet 對象的列的編號、類型和屬性由 ResultSet.getMetaData 方法返回的 ResulSetMetaData 對象提供。

 

 

另請參見:
Statement.executeQuery(java.lang.String), Statement.getResultSet(), ResultSetMetaData

字段摘要
static int CLOSE_CURSORS_AT_COMMIT
          該常量指示調用 Connection.commit 方法時應該關閉 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
          該常量指示調用 Connection.commit 方法時不應關閉 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<String,Class<?>> map)
          以 Java 編程語言中 Object 的形式檢索此 ResultSet 對象的當前行中指定列的值。
 Object getObject(String columnName)
          以 Java 編程語言中 Object 的形式獲取此 ResultSet 對象的當前行中指定列的值。
 Object getObject(String colName, Map<String,Class<?>> 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 編程語言中 java.net.URL 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。
 URL getURL(String columnName)
          以 Java 編程語言中 java.net.URL 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。
 SQLWarning getWarnings()
          檢索此 ResultSet 對象上的調用報告的第一個警告。
 void insertRow()
          將插入行的內容插入到此 ResultSet 對象和數據庫中。
 boolean isAfterLast()
          檢索指針是否位於此 ResultSet 對象的最后一行之后。
 boolean isBeforeFirst()
          檢索指針是否位於此 ResultSet 對象的第一行之前。
 boolean isFirst()
          檢索指針是否位於此 ResultSet 對象的第一行。
 boolean isLast()
          檢索指針是否位於此 ResultSet 對象的最后一行。
 boolean last()
          將指針移動到此 ResultSet 對象的最后一行。
 void moveToCurrentRow()
          將指針移動到記住的指針位置,通常為當前行。
 void moveToInsertRow()
          將指針移動到插入行。
 boolean next()
          將指針從當前位置下移一行。
 boolean previous()
          將指針移動到此 ResultSet 對象的上一行。
 void refreshRow()
          用數據庫中的最近值刷新當前行。
 boolean relative(int rows)
          按相對行數(或正或負)移動指針。
 boolean rowDeleted()
          檢索是否已刪除某行。
 boolean rowInserted()
          檢索當前行是否已有插入。
 boolean rowUpdated()
          檢索是否已更新當前行。
 void setFetchDirection(int direction)
          設置此 ResultSet 對象中行的處理方向。
 void setFetchSize(int rows)
          為 JDBC 驅動程序設置此 ResultSet 對象需要更多行時應該從數據庫獲取的行數。
 void updateArray(int columnIndex, Array x)
          用 java.sql.Array 值更新指定列。
 void updateArray(String columnName, Array x)
          用 java.sql.Array 值更新指定列。
 void updateAsciiStream(int columnIndex, InputStream x, int length)
          用 ascii 流值更新指定列。
 void updateAsciiStream(String columnName, InputStream x, int length)
          用 ascii 流值更新指定列。
 void updateBigDecimal(int columnIndex, BigDecimal x)
          用 java.math.BigDecimal 值更新指定列。
 void updateBigDecimal(String columnName, BigDecimal x)
          用 java.sql.BigDecimal 值更新指定列。
 void updateBinaryStream(int columnIndex, InputStream x, int length)
          用二進制流值更新指定列。
 void updateBinaryStream(String columnName, InputStream x, int length)
          用二進制流值更新指定列。
 void updateBlob(int columnIndex, Blob x)
          用 java.sql.Blob 值更新指定列。
 void updateBlob(String columnName, Blob x)
          用 java.sql.Blob 值更新指定列。
 void updateBoolean(int columnIndex, boolean x)
          用 boolean 值更新指定列。
 void updateBoolean(String columnName, boolean x)
          用 boolean 值更新指定列。
 void updateByte(int columnIndex, byte x)
          用 byte 值更新指定列。
 void updateByte(String columnName, byte x)
          用 byte 值更新指定列。
 void updateBytes(int columnIndex, byte[] x)
          用 byte 數組值更新指定列。
 void updateBytes(String columnName, byte[] x)
          用字節數組值更新指定列。
 void updateCharacterStream(int columnIndex, Reader x, int length)
          用字符流值更新指定列。
 void updateCharacterStream(String columnName, Reader reader, int length)
          用字符流值更新指定列。
 void updateClob(int columnIndex, Clob x)
          用 java.sql.Clob 值更新指定列。
 void updateClob(String columnName, Clob x)
          用 java.sql.Clob 值更新指定列。
 void updateDate(int columnIndex, Date x)
          用 java.sql.Date 值更新指定列。
 void updateDate(String columnName, Date x)
          用 java.sql.Date 值更新指定列。
 void updateDouble(int columnIndex, double x)
          用 double 值更新指定列。
 void updateDouble(String columnName, double x)
          用 double 值更新指定列。
 void updateFloat(int columnIndex, float x)
          用 float 值更新指定列。
 void updateFloat(String columnName, float x)
          用 float 值更新指定列。
 void updateInt(int columnIndex, int x)
          用 int 值更新指定列。
 void updateInt(String columnName, int x)
          用 int 值更新指定列。
 void updateLong(int columnIndex, long x)
          用 long 值更新指定列。
 void updateLong(String columnName, long x)
          用 long 值更新指定列。
 void updateNull(int columnIndex)
          為可以為 null 的列提供 null 值。
 void updateNull(String columnName)
          用 null 值更新指定列。
 void updateObject(int columnIndex, Object x)
          用 Object 值更新指定列。
 void updateObject(int columnIndex, Object x, int scale)
          用 Object 值更新指定列。
 void updateObject(String columnName, Object x)
          用 Object 值更新指定列。
 void updateObject(String columnName, Object x, int scale)
          用 Object 值更新指定列。
 void updateRef(int columnIndex, Ref x)
          用 java.sql.Ref 值更新指定列。
 void updateRef(String columnName, Ref x)
          用 java.sql.Ref 值更新指定列。
 void updateRow()
          用此 ResultSet 對象的當前行的新內容更新底層數據庫。
 void updateShort(int columnIndex, short x)
          用 short 值更新指定列。
 void updateShort(String columnName, short x)
          用 short 值更新指定列。
 void updateString(int columnIndex, String x)
          用 String 值更新指定列。
 void updateString(String columnName, String x)
          用 String 值更新指定列。
 void updateTime(int columnIndex, Time x)
          用 java.sql.Time 值更新指定列。
 void updateTime(String columnName, Time x)
          用 java.sql.Time 值更新指定列。
 void updateTimestamp(int columnIndex, Timestamp x)
          用 java.sql.Timestamp 值更新指定列。
 void updateTimestamp(String columnName, Timestamp x)
          用 java.sql.Timestamp 值更新指定列。
 boolean wasNull()
          報告最后一個讀取的列是否具有值 SQL NULL
 

字段詳細信息

FETCH_FORWARD

static final int FETCH_FORWARD
該常量指示將按正向(即從第一個到最后一個)處理結果集中的行。 setFetchDirection 方法將此常量用作驅動程序的提示,驅動程序可能忽略它。

 

從以下版本開始:
1.2
另請參見:
常量字段值

FETCH_REVERSE

static final int FETCH_REVERSE
該常量指示將按反向(即從最后一個到第一個)處理結果集中的行處理。 setFetchDirection 方法將此常量用作驅動程序的提示,驅動程序可能忽略它。

 

從以下版本開始:
1.2
另請參見:
常量字段值

FETCH_UNKNOWN

static final int FETCH_UNKNOWN
該常量指示結果集中的行的處理順序未知。 setFetchDirection 方法將此常量用作驅動程序的提示,驅動程序可能忽略它。

 

另請參見:
常量字段值

TYPE_FORWARD_ONLY

static final int TYPE_FORWARD_ONLY
該常量指示指針只能向前移動的 ResultSet 對象的類型。

 

從以下版本開始:
1.2
另請參見:
常量字段值

TYPE_SCROLL_INSENSITIVE

static final int TYPE_SCROLL_INSENSITIVE
該常量指示可滾動但通常不受其他的更改影響的 ResultSet 對象的類型。

 

從以下版本開始:
1.2
另請參見:
常量字段值

TYPE_SCROLL_SENSITIVE

static final int TYPE_SCROLL_SENSITIVE
該常量指示可滾動並且通常受其他的更改影響的 ResultSet 對象的類型。

 

從以下版本開始:
1.2
另請參見:
常量字段值

CONCUR_READ_ONLY

static final int CONCUR_READ_ONLY
該常量指示不可以更新的 ResultSet 對象的並發模式。

 

從以下版本開始:
1.2
另請參見:
常量字段值

CONCUR_UPDATABLE

static final int CONCUR_UPDATABLE
該常量指示可以更新的 ResultSet 對象的並發模式。

 

從以下版本開始:
1.2
另請參見:
常量字段值

HOLD_CURSORS_OVER_COMMIT

static final int HOLD_CURSORS_OVER_COMMIT
該常量指示調用 Connection.commit 方法時不應關閉 ResultSet 對象。

 

從以下版本開始:
1.4
另請參見:
常量字段值

CLOSE_CURSORS_AT_COMMIT

static final int CLOSE_CURSORS_AT_COMMIT
該常量指示調用 Connection.commit 方法時應該關閉 ResultSet 對象。

 

從以下版本開始:
1.4
另請參見:
常量字段值
方法詳細信息

next

boolean next()
             throws SQLException
將指針從當前位置下移一行。 ResultSet 指針最初位於第一行之前;第一次調用 next 方法使第一行成為當前行;第二次調用使第二行成為當前行,依此類推。

如果開啟了對當前行的輸入流,則調用 next 方法將隱式關閉它。讀取新行時,將清除 ResultSet 對象的警告鏈。

 

返回:
如果新的當前行有效,則返回 true;如果不存在下一行,則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤

close

void close()
           throws SQLException
立即釋放此 ResultSet 對象的數據庫和 JDBC 資源,而不是等待該對象自動關閉時發生此操作。

注:當生成 ResultSet 對象的 Statement 對象關閉、重新執行或用來從多個結果的序列檢索下一個結果時,該 Statement 對象會自動關閉 ResultSet 對象。垃圾回收 ResultSet 對象時它也會自動關閉。

 

拋出:
SQLException - 如果發生數據庫訪問錯誤

wasNull

boolean wasNull()
                throws SQLException
報告最后一個讀取的列是否具有值 SQL NULL。注意,必須首先對列調用一個獲取方法來嘗試讀取其值,然后調用 wasNull 方法查看讀取的值是否為 SQL NULL

 

返回:
如果最后一個讀取的列值為 SQL NULL,則返回 true;否則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤

getString

String getString(int columnIndex)
                 throws SQLException
以 Java 編程語言中 String 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getBoolean

boolean getBoolean(int columnIndex)
                   throws SQLException
以 Java 編程語言中 boolean 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 false
拋出:
SQLException - 如果發生數據庫訪問錯誤

getByte

byte getByte(int columnIndex)
             throws SQLException
以 Java 編程語言中 byte 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getShort

short getShort(int columnIndex)
               throws SQLException
以 Java 編程語言中 short 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getInt

int getInt(int columnIndex)
           throws SQLException
以 Java 編程語言中 int 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getLong

long getLong(int columnIndex)
             throws SQLException
以 Java 編程語言中 long 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getFloat

float getFloat(int columnIndex)
               throws SQLException
以 Java 編程語言中 float 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getDouble

double getDouble(int columnIndex)
                 throws SQLException
以 Java 編程語言中 double 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getBigDecimal

@Deprecated
BigDecimal getBigDecimal(int columnIndex,
                                    int scale)
                         throws SQLException
已過時。 

 

以 Java 編程語言中 java.sql.BigDecimal 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
scale - 小數點右邊的位數
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getBytes

byte[] getBytes(int columnIndex)
                throws SQLException
以 Java 編程語言中 byte 數組的形式檢索此 ResultSet 對象的當前行中指定列的值。這些字節表示驅動程序返回的原始值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getDate

Date getDate(int columnIndex)
             throws SQLException
以 Java 編程語言中 java.sql.Date 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getTime

Time getTime(int columnIndex)
             throws SQLException
以 Java 編程語言中 java.sql.Time 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getTimestamp

Timestamp getTimestamp(int columnIndex)
                       throws SQLException
以 Java 編程語言中 java.sql.Timestamp 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getAsciiStream

InputStream getAsciiStream(int columnIndex)
                           throws SQLException
以 ASCII 字符流的形式檢索此 ResultSet 對象的當前行中指定列的值。然后,可以按塊從流中讀取值。此方法尤其適合於檢索很大的 LONGVARCHAR 值。JDBC 驅動程序將執行從數據庫格式到 ASCII 的任何必要轉換。

注:在獲取任何其他列的值之前必須讀取返回流中的所有數據。下一次調用獲取方法將隱式關閉該流。此外,當調用 InputStream.available 方法時,不管是否存在可用數據,流都可能返回 0

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
以一字節 ASCII 字符流的形式返回傳遞數據庫列值的 Java 輸入流;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getUnicodeStream

@Deprecated
InputStream getUnicodeStream(int columnIndex)
                             throws SQLException
已過時。  使用 getCharacterStream 取代 getUnicodeStream

 

以兩字節 Unicode 字符流的形式檢索此 ResultSet 對象的當前行中指定列的值。第一個字節是高字節;第二個字節是低字節。然后,可以按塊從流中讀取值。此方法尤其適合於檢索很大的 LONGVARCHAR 值。JDBC 驅動程序將執行從數據庫格式到 Unicode 的任何必要轉換。

注:在獲取任何其他列的值之前必須讀取返回流中的所有數據。下一次調用獲取方法將隱式關閉該流。此外,當調用 InputStream.available 方法時,不管是否存在可用數據,流都可能返回 0

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
以兩字節 Unicode 字符流的形式返回傳遞數據庫列值的 Java 輸入流;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getBinaryStream

InputStream getBinaryStream(int columnIndex)
                            throws SQLException
以未解釋字節的二進制流的形式檢索此 ResultSet 對象的當前行中指定列的值。然后,可以按塊從流中讀取值。此方法尤其適合於檢索很大的 LONGVARBINARY 值。

注:在獲取任何其他列的值之前必須讀取返回流中的所有數據。下一次調用獲取方法將隱式關閉該流。此外,當調用 InputStream.available 方法時,不管是否存在可用數據,流都可能返回 0

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
以未解釋字節的流的形式返回傳遞數據庫列值的 Java 輸入流;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getString

String getString(String columnName)
                 throws SQLException
以 Java 編程語言中 String 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getBoolean

boolean getBoolean(String columnName)
                   throws SQLException
以 Java 編程語言中 boolean 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 false
拋出:
SQLException - 如果發生數據庫訪問錯誤

getByte

byte getByte(String columnName)
             throws SQLException
以 Java 編程語言中 byte 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getShort

short getShort(String columnName)
               throws SQLException
以 Java 編程語言中 short 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getInt

int getInt(String columnName)
           throws SQLException
以 Java 編程語言中 int 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getLong

long getLong(String columnName)
             throws SQLException
以 Java 編程語言中 long 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getFloat

float getFloat(String columnName)
               throws SQLException
以 Java 編程語言中 float 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getDouble

double getDouble(String columnName)
                 throws SQLException
以 Java 編程語言中 double 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 0
拋出:
SQLException - 如果發生數據庫訪問錯誤

getBigDecimal

@Deprecated
BigDecimal getBigDecimal(String columnName,
                                    int scale)
                         throws SQLException
已過時。 

 

以 Java 編程語言中 java.math.BigDecimal 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
scale - 小數點右邊的位數
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getBytes

byte[] getBytes(String columnName)
                throws SQLException
以 Java 編程語言中 byte 數組的形式檢索此 ResultSet 對象的當前行中指定列的值。這些字節表示驅動程序返回的原始值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getDate

Date getDate(String columnName)
             throws SQLException
以 Java 編程語言中的 java.sql.Date 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getTime

Time getTime(String columnName)
             throws SQLException
以 Java 編程語言中 java.sql.Time 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getTimestamp

Timestamp getTimestamp(String columnName)
                       throws SQLException
java.sql.Timestamp 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
列值;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getAsciiStream

InputStream getAsciiStream(String columnName)
                           throws SQLException
以 ASCII 字符流的形式檢索此 ResultSet 對象的當前行中指定列的值。然后,可以按塊從流中讀取值。此方法尤其適合於檢索很大的 LONGVARCHAR 值。JDBC 驅動程序將執行從數據庫格式到 ASCII 的任何必要轉換。

注:在獲取任何其他列的值之前必須讀取返回流中的所有數據。下一次調用獲取方法將隱式關閉該流。此外,當調用 available 方法時,不管是否存在可用數據,流都可能返回 0

 

參數:
columnName - 列的 SQL 名稱
返回:
以一字節 ASCII 字符流的形式返回傳遞數據庫列值的 Java 輸入流。如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getUnicodeStream

@Deprecated
InputStream getUnicodeStream(String columnName)
                             throws SQLException
已過時。  使用 getCharacterStream 代替

 

以兩字節 Unicode 字符流的形式檢索此 ResultSet 對象的當前行中指定列的值。第一個字節是高字節;第二個字節是低字節。然后,可以按塊從流中讀取值。此方法尤其適合於檢索很大的 LONGVARCHAR 值。采用 JDBC 技術的驅動程序將執行從數據庫格式到 Unicode 的任何必要轉換。

注:在獲取任何其他列的值之前必須讀取返回流中的所有數據。下一次調用獲取方法將隱式關閉該流。此外,當調用 InputStream.available 方法時,不管是否存在可用數據,流都可能返回 0

 

參數:
columnName - 列的 SQL 名稱
返回:
以兩字節 Unicode 字符流的形式返回傳遞數據庫列值的 Java 輸入流。如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getBinaryStream

InputStream getBinaryStream(String columnName)
                            throws SQLException
以未解釋的 byte 流的形式檢索此 ResultSet 對象的當前行中指定列的值。然后可以按塊從流中讀取該值。此方法尤其適合於檢索很大的 LONGVARBINARY 值。

注:在獲取任何其他列的值之前必須讀取返回流中的所有數據。下一次調用獲取方法將隱式關閉該流。此外,當調用 available 方法時,不管是否存在可用數據,流都可能返回 0

 

參數:
columnName - 列的 SQL 名稱
返回:
以未解釋字節流的形式返回傳遞數據庫列值的 Java 輸入流;如果值為 SQL NULL,則返回值為 null
拋出:
SQLException - 如果發生數據庫訪問錯誤

getWarnings

SQLWarning getWarnings()
                       throws SQLException
檢索此 ResultSet 對象上的調用報告的第一個警告。此 ResultSet 對象上的后續警告會被鏈接到此方法返回的 SQLWarning 對象。

每次讀取新行時,都會自動清除警告鏈。不可以在已經關閉的 ResultSet 對象上調用此方法;這樣做將導致拋出 SQLException

注:此警告鏈僅包含 ResultSet 方法產生的警告。Statement 方法(如讀取 OUT 參數)產生的任何警告都將鏈接在 Statement 對象上。

 

返回:
報告的第一個 SQLWarning 對象;如果不存在,則返回 null
拋出:
SQLException - 如果發生數據庫訪問錯誤或者在關閉的結果集上調用此方法

clearWarnings

void clearWarnings()
                   throws SQLException
清除在此 ResultSet 對象上報告的所有警告。調用此方法后,在為此 ResultSet 對象報告新的警告之前, getWarnings 方法將返回 null

 

拋出:
SQLException - 如果發生數據庫訪問錯誤

getCursorName

String getCursorName()
                     throws SQLException
檢索此 ResultSet 對象使用的 SQL 指針的名稱。

在 SQL 中,通過命名的指針檢索結果表。通過一個引用指針名稱來確定位置的更新/刪除語句,可以更新或刪除結果集的當前行。為了確保指針具有支持更新的適當隔離級別,指針的 SELECT 語句的形式應該為 SELECT FOR UPDATE。如果省略 FOR UPDATE,則定位更新可能失敗。

JDBC API 通過提供 ResultSet 對象使用的 SQL 指針的名稱支持此 SQL 功能。ResultSet 對象的當前行也是此 SQL 指針的當前行。

注:如果不支持定位更新,則拋出 SQLException

 

返回:
ResultSet 對象的指針的 SQL 名稱
拋出:
SQLException - 如果發生數據庫訪問錯誤

getMetaData

ResultSetMetaData getMetaData()
                              throws SQLException
檢索此 ResultSet 對象的列的編號、類型和屬性。

 

返回:
ResultSet 對象的列的描述
拋出:
SQLException - 如果發生數據庫訪問錯誤

getObject

Object getObject(int columnIndex)
                 throws SQLException

以 Java 編程語言中 Object 的形式獲取此 ResultSet 對象的當前行中指定列的值。

此方法將以 Java 對象的形式返回給定列的值。Java 對象的類型將為與該列的 SQL 類型相對應的默認 Java 對象類型,它遵守在 JDBC 規范中指定的內置類型的映射關系。如果值為 SQL NULL,則驅動程序返回一個 Java null

此方法還可用於讀取特定於數據庫的抽象數據類型。在 JDBC 2.0 API 中,可以擴展 getObject 方法的行為來實現 SQL 自定義類型的數據。當列包含結構化的或獨特的值時,此方法的行為類似於調用:getObject(columnIndex, this.getStatement().getConnection().getTypeMap())

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
保存列值的 java.lang.Object
拋出:
SQLException - 如果發生數據庫訪問錯誤

getObject

Object getObject(String columnName)
                 throws SQLException

以 Java 編程語言中 Object 的形式獲取此 ResultSet 對象的當前行中指定列的值。

此方法將以 Java 對象的形式返回給定列的值。Java 對象的類型將為與該列的 SQL 類型相對應的默認 Java 對象類型,它遵守在 JDBC 規范中指定的內置類型的映射關系。如果值為 SQL NULL,則驅動程序返回一個 Java null

此方法還可用於讀取特定於數據庫的抽象數據類型。

在 JDBC 2.0 API 中,可以擴展 getObject 方法的行為來實現 SQL 自定義類型的數據。當列包含結構化的或獨特的值時,此方法的行為類似於調用:getObject(columnIndex, this.getStatement().getConnection().getTypeMap())

 

參數:
columnName - 列的 SQL 名稱
返回:
保存列值的 java.lang.Object
拋出:
SQLException - 如果發生數據庫訪問錯誤

findColumn

int findColumn(String columnName)
               throws SQLException
將給定的 ResultSet 列名稱映射到其 ResultSet 列索引。

 

參數:
columnName - 列的名稱
返回:
給定列名稱的列索引
拋出:
SQLException - 如果 ResultSet 對象不包含 columnName 或者發生數據庫訪問錯誤

getCharacterStream

Reader getCharacterStream(int columnIndex)
                          throws SQLException
java.io.Reader 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
包含列值的 java.io.Reader 對象;如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getCharacterStream

Reader getCharacterStream(String columnName)
                          throws SQLException
java.io.Reader 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的名稱
返回:
包含列值的 java.io.Reader 對象;如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getBigDecimal

BigDecimal getBigDecimal(int columnIndex)
                         throws SQLException
以具有全精度的 java.math.BigDecimal 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
返回:
列值(全精度);如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getBigDecimal

BigDecimal getBigDecimal(String columnName)
                         throws SQLException
以具有全精度的 java.math.BigDecimal 的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列名稱
返回:
列值(全精度);如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

isBeforeFirst

boolean isBeforeFirst()
                      throws SQLException
檢索指針是否位於此 ResultSet 對象的第一行之前。

 

返回:
如果指針位於第一行之前,則返回 true;如果指針位於任何其他位置或者結果集不包含任何行,則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

isAfterLast

boolean isAfterLast()
                    throws SQLException
檢索指針是否位於此 ResultSet 對象的最后一行之后。

 

返回:
如果指針位於最后一行之后,則返回 true;如果指針位於任何其他位置或者結果集不包含任何行,則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

isFirst

boolean isFirst()
                throws SQLException
檢索指針是否位於此 ResultSet 對象的第一行。

 

返回:
如果指針位於第一行,則返回 true;否則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

isLast

boolean isLast()
               throws SQLException
檢索指針是否位於此 ResultSet 對象的最后一行。注:調用 isLast 方法可能開銷很大,因為 JDBC 驅動程序可能需要再往后獲取一行,以確定當前行是否為結果集中的最后一行。

 

返回:
如果指針位於最后一行上,則返回 true;否則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

beforeFirst

void beforeFirst()
                 throws SQLException
將指針移動到此 ResultSet 對象的開頭,正好位於第一行之前。如果結果集中不包含任何行,則此方法無效。

 

拋出:
SQLException - 如果發生數據庫訪問錯誤或者結果集類型為 TYPE_FORWARD_ONLY
從以下版本開始:
1.2

afterLast

void afterLast()
               throws SQLException
將指針移動到此 ResultSet 對象的末尾,正好位於最后一行之后。如果結果集中不包含任何行,則此方法無效。

 

拋出:
SQLException - 如果發生數據庫訪問錯誤或者結果集類型為 TYPE_FORWARD_ONLY
從以下版本開始:
1.2

first

boolean first()
              throws SQLException
將指針移動到此 ResultSet 對象的第一行。

 

返回:
如果指針位於有效行,則返回 true;如果結果集中不存在任何行,則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤或者結果集類型為 TYPE_FORWARD_ONLY
從以下版本開始:
1.2

last

boolean last()
             throws SQLException
將指針移動到此 ResultSet 對象的最后一行。

 

返回:
如果指針位於有效行,則返回 true;如果結果集中不存在任何行,則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤或者結果集類型為 TYPE_FORWARD_ONLY
從以下版本開始:
1.2

getRow

int getRow()
           throws SQLException
檢索當前行編號。第一行為 1 號,第二行為 2 號,依此類推。

 

返回:
當前行的編號;如果不存在當前行,則返回 0
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

absolute

boolean absolute(int row)
                 throws SQLException
將指針移動到此 ResultSet 對象的給定行編號。

如果行編號為正,則將指針移動到相對於結果集開頭的給定行編號。第一行為行 1,第二行為行 2,依此類推。

如果給定行編號為負,則將指針移動到相對於結果集末尾的絕對行位置。例如,調用方法 absolute(-1) 將指針置於最后一行;調用方法 absolute(-2) 將指針移動到倒數第二行,依此類推。

試圖將指針置於結果集的第一行/最后一行之外將導致指針位於第一行之前或最后一行之后。

注:調用 absolute(1) 等效於調用 first()。調用 absolute(-1) 等效於調用 last()

 

參數:
row - 指針應該移動到的行的編號。正的編號指示從結果集開頭開始計數的行編號;負的編號指示從結果集末尾開始計數的行編號
返回:
如果指針位於結果集上,則返回 true;否則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤或者結果集類型為 TYPE_FORWARD_ONLY
從以下版本開始:
1.2

relative

boolean relative(int rows)
                 throws SQLException
按相對行數(或正或負)移動指針。試圖移動到結果集的第一行/最后一行之外,會將指針置於第一行之前或最后一行之后。調用 relative(0) 有效,但是不更改指針位置。

注:調用方法 relative(1) 等效於調用方法 next(),而調用方法 relative(-1) 等效於調用方法 previous()

 

參數:
rows - 指定從當前行開始移動的行數的 int;正數表示指針向前移動;負數表示指針向后移動
返回:
如果指針位於行上,則返回 true;否則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤、不存在當前行或者結果集類型為 TYPE_FORWARD_ONLY
從以下版本開始:
1.2

previous

boolean previous()
                 throws SQLException
將指針移動到此 ResultSet 對象的上一行。

 

返回:
如果指針位於有效行上,則返回 true;如果它不在結果集中,則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤或者結果集類型為 TYPE_FORWARD_ONLY
從以下版本開始:
1.2

setFetchDirection

void setFetchDirection(int direction)
                       throws SQLException
設置此 ResultSet 對象中行的處理方向。初始值由生成此 ResultSet 對象的 Statement 對象確定。獲取方向可以在任何時間更改。

 

參數:
direction - 指定建議獲取方向的 intResultSet.FETCH_FORWARDResultSet.FETCH_REVERSEResultSet.FETCH_UNKNOWN 之一
拋出:
SQLException - 如果發生數據庫訪問錯誤,或者結果集類型為 TYPE_FORWARD_ONLY 但獲取方向不是 FETCH_FORWARD
從以下版本開始:
1.2
另請參見:
Statement.setFetchDirection(int), getFetchDirection()

getFetchDirection

int getFetchDirection()
                      throws SQLException
檢索此 ResultSet 對象的獲取方向。

 

返回:
ResultSet 對象的當前獲取方向
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2
另請參見:
setFetchDirection(int)

setFetchSize

void setFetchSize(int rows)
                  throws SQLException
為 JDBC 驅動程序設置此 ResultSet 對象需要更多行時應該從數據庫獲取的行數。如果指定的獲取大小為零,則 JDBC 驅動程序忽略該值,隨意對獲取大小作出它自己的最佳猜測。默認值由創建結果集的 Statement 對象設置。獲取大小可以在任何時間更改。

 

參數:
rows - 要獲取的行數
拋出:
SQLException - 如果發生數據庫訪問錯誤或者不滿足條件 0 <= rows <= Statement.getMaxRows()
從以下版本開始:
1.2
另請參見:
getFetchSize()

getFetchSize

int getFetchSize()
                 throws SQLException
檢索此 ResultSet 對象的獲取大小。

 

返回:
ResultSet 對象的當前獲取大小
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2
另請參見:
setFetchSize(int)

getType

int getType()
            throws SQLException
檢索此 ResultSet 對象的類型。類型由創建結果集的 Statement 對象確定。

 

返回:
ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getConcurrency

int getConcurrency()
                   throws SQLException
檢索此 ResultSet 對象的並發模式。使用的並發由創建結果集的 Statement 對象確定。

 

返回:
並發類型, ResultSet.CONCUR_READ_ONLYResultSet.CONCUR_UPDATABLE
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

rowUpdated

boolean rowUpdated()
                   throws SQLException
檢索是否已更新當前行。返回值取決於結果集是否可以檢測到更新。

 

返回:
如果 (1) 所有者或其他人已對行進行可見更新 (2) 可以檢測到更新都成立,則返回 true
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2
另請參見:
DatabaseMetaData.updatesAreDetected(int)

rowInserted

boolean rowInserted()
                    throws SQLException
檢索當前行是否已有插入。返回值取決於此 ResultSet 對象是否可以檢測到可見插入。

 

返回:
如果行已有插入並且檢測到插入,則返回 true;否則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2
另請參見:
DatabaseMetaData.insertsAreDetected(int)

rowDeleted

boolean rowDeleted()
                   throws SQLException
檢索是否已刪除某行。刪除的行可能在結果集中留下一個可見的“洞”。此方法可用於檢測結果集中的洞。返回值取決於此 ResultSet 對象是否可以檢測到刪除。

 

返回:
如果刪除了行並且檢測到刪除,則返回 true;否則返回 false
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2
另請參見:
DatabaseMetaData.deletesAreDetected(int)

updateNull

void updateNull(int columnIndex)
                throws SQLException
為可以為 null 的列提供 null 值。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateBoolean

void updateBoolean(int columnIndex,
                   boolean x)
                   throws SQLException
boolean 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateByte

void updateByte(int columnIndex,
                byte x)
                throws SQLException
byte 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateShort

void updateShort(int columnIndex,
                 short x)
                 throws SQLException
short 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateInt

void updateInt(int columnIndex,
               int x)
               throws SQLException
int 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateLong

void updateLong(int columnIndex,
                long x)
                throws SQLException
long 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會不更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateFloat

void updateFloat(int columnIndex,
                 float x)
                 throws SQLException
float 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateDouble

void updateDouble(int columnIndex,
                  double x)
                  throws SQLException
double 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateBigDecimal

void updateBigDecimal(int columnIndex,
                      BigDecimal x)
                      throws SQLException
java.math.BigDecimal 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateString

void updateString(int columnIndex,
                  String x)
                  throws SQLException
String 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateBytes

void updateBytes(int columnIndex,
                 byte[] x)
                 throws SQLException
byte 數組值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateDate

void updateDate(int columnIndex,
                Date x)
                throws SQLException
java.sql.Date 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateTime

void updateTime(int columnIndex,
                Time x)
                throws SQLException
java.sql.Time 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateTimestamp

void updateTimestamp(int columnIndex,
                     Timestamp x)
                     throws SQLException
java.sql.Timestamp 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateAsciiStream

void updateAsciiStream(int columnIndex,
                       InputStream x,
                       int length)
                       throws SQLException
用 ascii 流值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
length - 流的長度
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateBinaryStream

void updateBinaryStream(int columnIndex,
                        InputStream x,
                        int length)
                        throws SQLException
用二進制流值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
length - 流的長度
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateCharacterStream

void updateCharacterStream(int columnIndex,
                           Reader x,
                           int length)
                           throws SQLException
用字符流值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
length - 流的長度
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateObject

void updateObject(int columnIndex,
                  Object x,
                  int scale)
                  throws SQLException
Object 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
scale - 對於 java.sql.Types.DECIMAjava.sql.Types.NUMERIC 類型,此參數是小數點后面的位數。對於其他所有類型,將忽略此值。
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateObject

void updateObject(int columnIndex,
                  Object x)
                  throws SQLException
Object 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateNull

void updateNull(String columnName)
                throws SQLException
null 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateBoolean

void updateBoolean(String columnName,
                   boolean x)
                   throws SQLException
boolean 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateByte

void updateByte(String columnName,
                byte x)
                throws SQLException
byte 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateShort

void updateShort(String columnName,
                 short x)
                 throws SQLException
short 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateInt

void updateInt(String columnName,
               int x)
               throws SQLException
int 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateLong

void updateLong(String columnName,
                long x)
                throws SQLException
long 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateFloat

void updateFloat(String columnName,
                 float x)
                 throws SQLException
float 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateDouble

void updateDouble(String columnName,
                  double x)
                  throws SQLException
double 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateBigDecimal

void updateBigDecimal(String columnName,
                      BigDecimal x)
                      throws SQLException
java.sql.BigDecimal 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateString

void updateString(String columnName,
                  String x)
                  throws SQLException
String 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateBytes

void updateBytes(String columnName,
                 byte[] x)
                 throws SQLException
用字節數組值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateDate

void updateDate(String columnName,
                Date x)
                throws SQLException
java.sql.Date 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateTime

void updateTime(String columnName,
                Time x)
                throws SQLException
java.sql.Time 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateTimestamp

void updateTimestamp(String columnName,
                     Timestamp x)
                     throws SQLException
java.sql.Timestamp 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateAsciiStream

void updateAsciiStream(String columnName,
                       InputStream x,
                       int length)
                       throws SQLException
用 ascii 流值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
length - 流的長度
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateBinaryStream

void updateBinaryStream(String columnName,
                        InputStream x,
                        int length)
                        throws SQLException
用二進制流值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
length - 流的長度
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateCharacterStream

void updateCharacterStream(String columnName,
                           Reader reader,
                           int length)
                           throws SQLException
用字符流值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
reader - 包含新列值的 java.io.Reader 對象
length - 流的長度
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateObject

void updateObject(String columnName,
                  Object x,
                  int scale)
                  throws SQLException
Object 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
scale - 對於 java.sql.Types.DECIMALjava.sql.Types.NUMERIC 類型,此參數是小數點后面的位數。對於其他所有類型,將忽略此值。
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

updateObject

void updateObject(String columnName,
                  Object x)
                  throws SQLException
Object 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

insertRow

void insertRow()
               throws SQLException
將插入行的內容插入到此 ResultSet 對象和數據庫中。調用此方法時,指針必須位於插入行上。

 

拋出:
SQLException - 如果發生數據庫訪問錯誤,如果在指針不位於插入行上時調用此方法,或者插入行中所有不可為 null 的列中還存在未分配值的列
從以下版本開始:
1.2

updateRow

void updateRow()
               throws SQLException
用此 ResultSet 對象的當前行的新內容更新底層數據庫。指針不位於插入行上時不能調用此方法。

 

拋出:
SQLException - 如果發生數據庫訪問錯誤或者在指針不位於插入行上時調用了此方法
從以下版本開始:
1.2

deleteRow

void deleteRow()
               throws SQLException
從此 ResultSet 對象和底層數據庫中刪除當前行。指針不位於插入行上時不能調用此方法。

 

拋出:
SQLException - 如果發生數據庫訪問錯誤或者在指針不位於插入行上時調用了此方法
從以下版本開始:
1.2

refreshRow

void refreshRow()
                throws SQLException
用數據庫中的最近值刷新當前行。指針不位於插入行上時不能調用此方法。

refreshRow 方法提供一種讓應用程序顯式告知 JDBC 驅動程序從數據庫重新獲取行的方式。應用程序可能需要在 JDBC 驅動程序完成緩存或預獲取操作后調用 refreshRow,以便從數據庫獲取行的最新值。如果獲取大小大於 1,則 JDBC 驅動程序可以一次實際刷新多行。

應根據事務隔離級別和指針敏感度確定是否重新獲取所有值。如果在調用更新方法之后,但在調用 updateRow 方法之前調用 refreshRow,則會丟失對行所作的更新。頻繁調用方法 refreshRow 可能導致性能下降。

 

拋出:
SQLException - 如果發生數據庫訪問錯誤或者在指針不位於插入行上時調用了此方法
從以下版本開始:
1.2

cancelRowUpdates

void cancelRowUpdates()
                      throws SQLException
取消對 ResultSet 對象中的當前行所作的更新。此方法在調用更新方法之后,但在調用 updateRow 方法之前調用才可以回滾對行所作的更新。如果沒有進行任何更新或者已經調用 updateRow 方法,則此方法無效。

 

拋出:
SQLException - 如果發生數據庫訪問錯誤或者在指針不位於插入行上時調用了此方法
從以下版本開始:
1.2

moveToInsertRow

void moveToInsertRow()
                     throws SQLException
將指針移動到插入行。將指針置於插入行上時,當前的指針位置會被記住。插入行是一個與可更新結果集相關聯的特殊行。它實際上是一個緩沖區,在將行插入到結果集前可以通過調用更新方法在其中構造新行。當指針位於插入行上時,僅能調用更新方法、獲取方法以及 insertRow 方法。每次在調用 insertRow 之前調用此方法時,必須為結果集中的所有列分配值。在對列值調用獲取方法之前,必須調用更新方法。

 

拋出:
SQLException - 如果發生數據庫訪問錯誤或者結果集不可更新
從以下版本開始:
1.2

moveToCurrentRow

void moveToCurrentRow()
                      throws SQLException
將指針移動到記住的指針位置,通常為當前行。如果指針不位於插入行上,則此方法無效。

 

拋出:
SQLException - 如果發生數據庫訪問錯誤或者結果集不可更新
從以下版本開始:
1.2

getStatement

Statement getStatement()
                       throws SQLException
檢索生成此 ResultSet 對象的 Statement 對象。如果結果集是以其他方式生成的(如通過 DatabaseMetaData 方法),則此方法返回 null

 

返回:
生成此 ResultSet 對象的 Statment 對象;如果結果集是以其他方法生成的,則返回 null
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getObject

Object getObject(int i,
                 Map<String,Class<?>> map)
                 throws SQLException
以 Java 編程語言中 Object 的形式檢索此 ResultSet 對象的當前行中指定列的值。如果值為 SQL NULL,則驅動程序返回一個 Java null。此方法使用給定的 Map 對象作為正在檢索的 SQL 結構化或獨特類型的自定義映射關系。

 

參數:
i - 第一個列是 1,第二個列是 2,……
map - 一個 java.util.Map 對象,包含從 SQL 類型名稱到 Java 編程語言中類的映射關系
返回:
表示 SQL 值的 Java 編程語言中的 Object
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getRef

Ref getRef(int i)
           throws SQLException
以 Java 編程語言中 Ref 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
i - 第一個列是 1,第二個列是 2,……
返回:
表示 SQL REF 值的 Ref 對象
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getBlob

Blob getBlob(int i)
             throws SQLException
以 Java 編程語言中 Blob 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
i - 第一個列是 1,第二個列是 2,……
返回:
表示指定列中的 SQL BLOB 值的 BLOB 對象
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getClob

Clob getClob(int i)
             throws SQLException
以 Java 編程語言中 Clob 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
i - 第一個列是 1,第二個列是 2,……
返回:
表示指定列中的 SQL Clob 值的 Clob 對象
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getArray

Array getArray(int i)
               throws SQLException
以 Java 編程語言中 Array 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
i - 第一個列是 1,第二個列是 2,……
返回:
表示指定列中的 SQL Array 值的 Array 對象
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getObject

Object getObject(String colName,
                 Map<String,Class<?>> map)
                 throws SQLException
以 Java 編程語言中 Object 的形式檢索此 ResultSet 對象的當前行中指定列的值。如果值為 SQL NULL,則驅動程序返回一個 Java null。此方法使用指定的 Map 對象自定義映射關系(如果合適)。

 

參數:
colName - 列的名稱,根據它來檢索值
map - 包含從 SQL 類型名稱到 Java 編程語言中類的映射關系的 java.util.Map 對象
返回:
表示指定列中的 SQL 值的 Object
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getRef

Ref getRef(String colName)
           throws SQLException
以 Java 編程語言中 Ref 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
colName - 列名稱
返回:
表示指定列中 SQL Ref 值的 Ref 對象
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getBlob

Blob getBlob(String colName)
             throws SQLException
以 Java 編程語言中 Blob 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
colName - 列的名稱,根據它檢索值
返回:
表示指定列中 SQL Blob 值的 Blob 對象
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getClob

Clob getClob(String colName)
             throws SQLException
以 Java 編程語言中 Clob 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
colName - 列的名稱,根據它檢索值
返回:
表示指定列中 SQL CLOB 值的 Clob 對象
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getArray

Array getArray(String colName)
               throws SQLException
以 Java 編程語言中 Array 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
colName - 列的名稱,根據它檢索值
返回:
表示指定列中 SQL ARRAY 值的 ARRAY 對象
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getDate

Date getDate(int columnIndex,
             Calendar cal)
             throws SQLException
以 Java 編程語言中 java.sql.Date 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。如果底層數據庫未存儲時區信息,則此方法使用給定日歷構造日期的適當毫秒值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
cal - 在構造日期時使用的 java.util.Calendar 對象
返回:
java.sql.Date 對象形式的列值;如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getDate

Date getDate(String columnName,
             Calendar cal)
             throws SQLException
以 Java 編程語言中 java.sql.Date 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。如果底層數據庫未存儲時區信息,則此方法使用給定日歷構造日期的適當毫秒值。

 

參數:
columnName - 列的 SQL 名稱,根據它檢索值
cal - 在構造日期時使用的 java.util.Calendar 對象
返回:
java.sql.Date 對象形式的列值;如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getTime

Time getTime(int columnIndex,
             Calendar cal)
             throws SQLException
以 Java 編程語言中 java.sql.Time 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。如果底層數據庫未存儲時區信息,則此方法使用給定日歷構造時間的適當毫秒值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
cal - 在構造時間時使用的 java.util.Calendar 對象
返回:
java.sql.Time 對象形式的列值;如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getTime

Time getTime(String columnName,
             Calendar cal)
             throws SQLException
以 Java 編程語言中 java.sql.Time 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。如果底層數據庫未存儲時區信息,則此方法使用給定日歷構造時間的適當毫秒值。

 

參數:
columnName - 列的 SQL 名稱
cal - 在構造時間時使用的 java.util.Calendar 對象
返回:
java.sql.Time 對象形式的列值;如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getTimestamp

Timestamp getTimestamp(int columnIndex,
                       Calendar cal)
                       throws SQLException
以 Java 編程語言中 java.sql.Timestamp 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。如果底層數據庫未存儲時區信息,則此方法使用給定日歷構造時間戳的適當毫秒值。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
cal - 在構造時間戳時使用的 java.util.Calendar 對象
返回:
java.sql.Timestamp 對象形式的列值;如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getTimestamp

Timestamp getTimestamp(String columnName,
                       Calendar cal)
                       throws SQLException
以 Java 編程語言中 java.sql.Timestamp 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。如果底層數據庫未存儲時區信息,則此方法使用給定日歷構造時間戳的適當毫秒值。

 

參數:
columnName - 列的 SQL 名稱
cal - 在構造日期時使用的 java.util.Calendar 對象
返回:
java.sql.Timestamp 對象形式的列值;如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.2

getURL

URL getURL(int columnIndex)
           throws SQLException
以 Java 編程語言中 java.net.URL 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnIndex - 索引,其中第一個列是 1、第二個列是 2,……
返回:
java.net.URL 對象形式的列值;如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤或者 URL 是錯誤的
從以下版本開始:
1.4

getURL

URL getURL(String columnName)
           throws SQLException
以 Java 編程語言中 java.net.URL 對象的形式檢索此 ResultSet 對象的當前行中指定列的值。

 

參數:
columnName - 列的 SQL 名稱
返回:
java.net.URL 對象形式的列值;如果值為 SQL NULL,則返回值為 Java 編程語言中的 null
拋出:
SQLException - 如果發生數據庫訪問錯誤或者 URL 是錯誤的
從以下版本開始:
1.4

updateRef

void updateRef(int columnIndex,
               Ref x)
               throws SQLException
java.sql.Ref 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.4

updateRef

void updateRef(String columnName,
               Ref x)
               throws SQLException
java.sql.Ref 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.4

updateBlob

void updateBlob(int columnIndex,
                Blob x)
                throws SQLException
java.sql.Blob 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.4

updateBlob

void updateBlob(String columnName,
                Blob x)
                throws SQLException
java.sql.Blob 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.4

updateClob

void updateClob(int columnIndex,
                Clob x)
                throws SQLException
java.sql.Clob 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.4

updateClob

void updateClob(String columnName,
                Clob x)
                throws SQLException
java.sql.Clob 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.4

updateArray

void updateArray(int columnIndex,
                 Array x)
                 throws SQLException
java.sql.Array 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnIndex - 第一個列是 1,第二個列是 2,……
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤
從以下版本開始:
1.4

updateArray

void updateArray(String columnName,
                 Array x)
                 throws SQLException
java.sql.Array 值更新指定列。更新方法用於更新當前行或插入行中的列值,並不會更新底層數據庫;更新數據庫要調用 updateRowinsertRow 方法。

 

參數:
columnName - 列的名稱
x - 新列值
拋出:
SQLException - 如果發生數據庫訪問錯誤

 

 

 

Interface ResultSet

  • All Superinterfaces:
    AutoCloseable, Wrapper
    All Known Subinterfaces:
    CachedRowSet, FilteredRowSet, JdbcRowSet, JoinRowSet, RowSet, SyncResolver, WebRowSet


    public interface ResultSet
    extends Wrapper, AutoCloseable
    A table of data representing a database result set, which is usually generated by executing a statement that queries the database.

    A ResultSet object maintains a cursor pointing to its current row of data. Initially the cursor is positioned before the first row. The next method moves the cursor to the next row, and because it returns false when there are no more rows in the ResultSet object, it can be used in a while loop to iterate through the result set.

    A default ResultSet object is not updatable and has a cursor that moves forward only. Thus, you can iterate through it only once and only from the first row to the last row. It is possible to produce ResultSet objects that are scrollable and/or updatable. The following code fragment, in which con is a valid Connection object, illustrates how to make a result set that is scrollable and insensitive to updates by others, and that is updatable. See ResultSet fields for other options.

           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
    
     
    The ResultSet interface provides getter methods ( getBoolean, getLong, and so on) for retrieving column values from the current row. Values can be retrieved using either the index number of the column or the name of the column. In general, using the column index will be more efficient. Columns are numbered from 1. For maximum portability, result set columns within each row should be read in left-to-right order, and each column should be read only once.

    For the getter methods, a JDBC driver attempts to convert the underlying data to the Java type specified in the getter method and returns a suitable Java value. The JDBC specification has a table showing the allowable mappings from SQL types to Java types that can be used by the ResultSet getter methods.

     

    Column names used as input to getter methods are case insensitive. When a getter method is called with a column name and several columns have the same name, the value of the first matching column will be returned. The column name option is designed to be used when column names are used in the SQL query that generated the result set. For columns that are NOT explicitly named in the query, it is best to use column numbers. If column names are used, the programmer should take care to guarantee that they uniquely refer to the intended columns, which can be assured with the SQL AS clause.

    A set of updater methods were added to this interface in the JDBC 2.0 API (JavaTM 2 SDK, Standard Edition, version 1.2). The comments regarding parameters to the getter methods also apply to parameters to the updater methods.

    The updater methods may be used in two ways:

    1. to update a column value in the current row. In a scrollable ResultSet object, the cursor can be moved backwards and forwards, to an absolute position, or to a position relative to the current row. The following code fragment updates the NAME column in the fifth row of the ResultSet object rs and then uses the method updateRow to update the data source table from which rs was derived.
             rs.absolute(5); // moves the cursor to the fifth row of rs
             rs.updateString("NAME", "AINSWORTH"); // updates the
                // NAME column of row 5 to be AINSWORTH
             rs.updateRow(); // updates the row in the data source
      
       
    2. to insert column values into the insert row. An updatable ResultSet object has a special row associated with it that serves as a staging area for building a row to be inserted. The following code fragment moves the cursor to the insert row, builds a three-column row, and inserts it into rs and into the data source table using the method insertRow.
             rs.moveToInsertRow(); // moves cursor to the insert row
             rs.updateString(1, "AINSWORTH"); // updates the
                // first column of the insert row to be AINSWORTH
             rs.updateInt(2,35); // updates the second column to be 35
             rs.updateBoolean(3, true); // updates the third column to true
             rs.insertRow();
             rs.moveToCurrentRow();
      
       

    A ResultSet object is automatically closed when the Statement object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results.

    The number, types and properties of a ResultSet object's columns are provided by the ResultSetMetaData object returned by the ResultSet.getMetaData method.

    See Also:
    Statement.executeQuery(java.lang.String), Statement.getResultSet(), ResultSetMetaData
    • Field Summary

      Fields  
      Modifier and Type Field and Description
      static int CLOSE_CURSORS_AT_COMMIT
      The constant indicating that open ResultSet objects with this holdability will be closed when the current transaction is commited.
      static int CONCUR_READ_ONLY
      The constant indicating the concurrency mode for a ResultSet object that may NOT be updated.
      static int CONCUR_UPDATABLE
      The constant indicating the concurrency mode for a ResultSet object that may be updated.
      static int FETCH_FORWARD
      The constant indicating that the rows in a result set will be processed in a forward direction; first-to-last.
      static int FETCH_REVERSE
      The constant indicating that the rows in a result set will be processed in a reverse direction; last-to-first.
      static int FETCH_UNKNOWN
      The constant indicating that the order in which rows in a result set will be processed is unknown.
      static int HOLD_CURSORS_OVER_COMMIT
      The constant indicating that open ResultSet objects with this holdability will remain open when the current transaction is commited.
      static int TYPE_FORWARD_ONLY
      The constant indicating the type for a ResultSet object whose cursor may move only forward.
      static int TYPE_SCROLL_INSENSITIVE
      The constant indicating the type for a ResultSet object that is scrollable but generally not sensitive to changes to the data that underlies the ResultSet.
      static int TYPE_SCROLL_SENSITIVE
      The constant indicating the type for a ResultSet object that is scrollable and generally sensitive to changes to the data that underlies the ResultSet.
    • Method Summary

      Methods  
      Modifier and Type Method and Description
      boolean absolute(int row)
      Moves the cursor to the given row number in this ResultSet object.
      void afterLast()
      Moves the cursor to the end of this ResultSet object, just after the last row.
      void beforeFirst()
      Moves the cursor to the front of this ResultSet object, just before the first row.
      void cancelRowUpdates()
      Cancels the updates made to the current row in this ResultSet object.
      void clearWarnings()
      Clears all warnings reported on this ResultSet object.
      void close()
      Releases this ResultSet object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed.
      void deleteRow()
      Deletes the current row from this ResultSet object and from the underlying database.
      int findColumn(String columnLabel)
      Maps the given ResultSet column label to its ResultSet column index.
      boolean first()
      Moves the cursor to the first row in this ResultSet object.
      Array getArray(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as an Array object in the Java programming language.
      Array getArray(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as an Array object in the Java programming language.
      InputStream getAsciiStream(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a stream of ASCII characters.
      InputStream getAsciiStream(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a stream of ASCII characters.
      BigDecimal getBigDecimal(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.math.BigDecimal with full precision.
      BigDecimal getBigDecimal(int columnIndex, int scale)
      Deprecated.  
      BigDecimal getBigDecimal(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.math.BigDecimal with full precision.
      BigDecimal getBigDecimal(String columnLabel, int scale)
      Deprecated.  
      InputStream getBinaryStream(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a stream of uninterpreted bytes.
      InputStream getBinaryStream(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a stream of uninterpreted bytes.
      Blob getBlob(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a Blob object in the Java programming language.
      Blob getBlob(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a Blob object in the Java programming language.
      boolean getBoolean(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a boolean in the Java programming language.
      boolean getBoolean(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a boolean in the Java programming language.
      byte getByte(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a byte in the Java programming language.
      byte getByte(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a byte in the Java programming language.
      byte[] getBytes(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a byte array in the Java programming language.
      byte[] getBytes(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a byte array in the Java programming language.
      Reader getCharacterStream(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object.
      Reader getCharacterStream(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object.
      Clob getClob(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a Clob object in the Java programming language.
      Clob getClob(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a Clob object in the Java programming language.
      int getConcurrency()
      Retrieves the concurrency mode of this ResultSet object.
      String getCursorName()
      Retrieves the name of the SQL cursor used by this ResultSet object.
      Date getDate(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.
      Date getDate(int columnIndex, Calendar cal)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.
      Date getDate(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.
      Date getDate(String columnLabel, Calendar cal)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.
      double getDouble(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a double in the Java programming language.
      double getDouble(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a double in the Java programming language.
      int getFetchDirection()
      Retrieves the fetch direction for this ResultSet object.
      int getFetchSize()
      Retrieves the fetch size for this ResultSet object.
      float getFloat(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a float in the Java programming language.
      float getFloat(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a float in the Java programming language.
      int getHoldability()
      Retrieves the holdability of this ResultSet object
      int getInt(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as an int in the Java programming language.
      int getInt(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as an int in the Java programming language.
      long getLong(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a long in the Java programming language.
      long getLong(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a long in the Java programming language.
      ResultSetMetaData getMetaData()
      Retrieves the number, types and properties of this ResultSet object's columns.
      Reader getNCharacterStream(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object.
      Reader getNCharacterStream(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object.
      NClob getNClob(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a NClob object in the Java programming language.
      NClob getNClob(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a NClob object in the Java programming language.
      String getNString(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language.
      String getNString(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language.
      Object getObject(int columnIndex)
      Gets the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.
      <T> T getObject(int columnIndex, Class<T> type)
      Retrieves the value of the designated column in the current row of this ResultSet object and will convert from the SQL type of the column to the requested Java data type, if the conversion is supported.
      Object getObject(int columnIndex, Map<String,Class<?>> map)
      Retrieves the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.
      Object getObject(String columnLabel)
      Gets the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.
      <T> T getObject(String columnLabel, Class<T> type)
      Retrieves the value of the designated column in the current row of this ResultSet object and will convert from the SQL type of the column to the requested Java data type, if the conversion is supported.
      Object getObject(String columnLabel, Map<String,Class<?>> map)
      Retrieves the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.
      Ref getRef(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a Ref object in the Java programming language.
      Ref getRef(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a Ref object in the Java programming language.
      int getRow()
      Retrieves the current row number.
      RowId getRowId(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.RowId object in the Java programming language.
      RowId getRowId(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.RowId object in the Java programming language.
      short getShort(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a short in the Java programming language.
      short getShort(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a short in the Java programming language.
      SQLXML getSQLXML(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet as a java.sql.SQLXML object in the Java programming language.
      SQLXML getSQLXML(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet as a java.sql.SQLXML object in the Java programming language.
      Statement getStatement()
      Retrieves the Statement object that produced this ResultSet object.
      String getString(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language.
      String getString(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language.
      Time getTime(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.
      Time getTime(int columnIndex, Calendar cal)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.
      Time getTime(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.
      Time getTime(String columnLabel, Calendar cal)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.
      Timestamp getTimestamp(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
      Timestamp getTimestamp(int columnIndex, Calendar cal)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
      Timestamp getTimestamp(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
      Timestamp getTimestamp(String columnLabel, Calendar cal)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
      int getType()
      Retrieves the type of this ResultSet object.
      InputStream getUnicodeStream(int columnIndex)
      Deprecated. 
      use getCharacterStream in place of getUnicodeStream
      InputStream getUnicodeStream(String columnLabel)
      Deprecated. 
      use getCharacterStream instead
      URL getURL(int columnIndex)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.net.URL object in the Java programming language.
      URL getURL(String columnLabel)
      Retrieves the value of the designated column in the current row of this ResultSet object as a java.net.URL object in the Java programming language.
      SQLWarning getWarnings()
      Retrieves the first warning reported by calls on this ResultSet object.
      void insertRow()
      Inserts the contents of the insert row into this ResultSet object and into the database.
      boolean isAfterLast()
      Retrieves whether the cursor is after the last row in this ResultSet object.
      boolean isBeforeFirst()
      Retrieves whether the cursor is before the first row in this ResultSet object.
      boolean isClosed()
      Retrieves whether this ResultSet object has been closed.
      boolean isFirst()
      Retrieves whether the cursor is on the first row of this ResultSet object.
      boolean isLast()
      Retrieves whether the cursor is on the last row of this ResultSet object.
      boolean last()
      Moves the cursor to the last row in this ResultSet object.
      void moveToCurrentRow()
      Moves the cursor to the remembered cursor position, usually the current row.
      void moveToInsertRow()
      Moves the cursor to the insert row.
      boolean next()
      Moves the cursor froward one row from its current position.
      boolean previous()
      Moves the cursor to the previous row in this ResultSet object.
      void refreshRow()
      Refreshes the current row with its most recent value in the database.
      boolean relative(int rows)
      Moves the cursor a relative number of rows, either positive or negative.
      boolean rowDeleted()
      Retrieves whether a row has been deleted.
      boolean rowInserted()
      Retrieves whether the current row has had an insertion.
      boolean rowUpdated()
      Retrieves whether the current row has been updated.
      void setFetchDirection(int direction)
      Gives a hint as to the direction in which the rows in this ResultSet object will be processed.
      void setFetchSize(int rows)
      Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object.
      void updateArray(int columnIndex, Array x)
      Updates the designated column with a java.sql.Array value.
      void updateArray(String columnLabel, Array x)
      Updates the designated column with a java.sql.Array value.
      void updateAsciiStream(int columnIndex, InputStream x)
      Updates the designated column with an ascii stream value.
      void updateAsciiStream(int columnIndex, InputStream x, int length)
      Updates the designated column with an ascii stream value, which will have the specified number of bytes.
      void updateAsciiStream(int columnIndex, InputStream x, long length)
      Updates the designated column with an ascii stream value, which will have the specified number of bytes.
      void updateAsciiStream(String columnLabel, InputStream x)
      Updates the designated column with an ascii stream value.
      void updateAsciiStream(String columnLabel, InputStream x, int length)
      Updates the designated column with an ascii stream value, which will have the specified number of bytes.
      void updateAsciiStream(String columnLabel, InputStream x, long length)
      Updates the designated column with an ascii stream value, which will have the specified number of bytes.
      void updateBigDecimal(int columnIndex, BigDecimal x)
      Updates the designated column with a java.math.BigDecimal value.
      void updateBigDecimal(String columnLabel, BigDecimal x)
      Updates the designated column with a java.sql.BigDecimal value.
      void updateBinaryStream(int columnIndex, InputStream x)
      Updates the designated column with a binary stream value.
      void updateBinaryStream(int columnIndex, InputStream x, int length)
      Updates the designated column with a binary stream value, which will have the specified number of bytes.
      void updateBinaryStream(int columnIndex, InputStream x, long length)
      Updates the designated column with a binary stream value, which will have the specified number of bytes.
      void updateBinaryStream(String columnLabel, InputStream x)
      Updates the designated column with a binary stream value.
      void updateBinaryStream(String columnLabel, InputStream x, int length)
      Updates the designated column with a binary stream value, which will have the specified number of bytes.
      void updateBinaryStream(String columnLabel, InputStream x, long length)
      Updates the designated column with a binary stream value, which will have the specified number of bytes.
      void updateBlob(int columnIndex, Blob x)
      Updates the designated column with a java.sql.Blob value.
      void updateBlob(int columnIndex, InputStream inputStream)
      Updates the designated column using the given input stream.
      void updateBlob(int columnIndex, InputStream inputStream, long length)
      Updates the designated column using the given input stream, which will have the specified number of bytes.
      void updateBlob(String columnLabel, Blob x)
      Updates the designated column with a java.sql.Blob value.
      void updateBlob(String columnLabel, InputStream inputStream)
      Updates the designated column using the given input stream.
      void updateBlob(String columnLabel, InputStream inputStream, long length)
      Updates the designated column using the given input stream, which will have the specified number of bytes.
      void updateBoolean(int columnIndex, boolean x)
      Updates the designated column with a boolean value.
      void updateBoolean(String columnLabel, boolean x)
      Updates the designated column with a boolean value.
      void updateByte(int columnIndex, byte x)
      Updates the designated column with a byte value.
      void updateByte(String columnLabel, byte x)
      Updates the designated column with a byte value.
      void updateBytes(int columnIndex, byte[] x)
      Updates the designated column with a byte array value.
      void updateBytes(String columnLabel, byte[] x)
      Updates the designated column with a byte array value.
      void updateCharacterStream(int columnIndex, Reader x)
      Updates the designated column with a character stream value.
      void updateCharacterStream(int columnIndex, Reader x, int length)
      Updates the designated column with a character stream value, which will have the specified number of bytes.
      void updateCharacterStream(int columnIndex, Reader x, long length)
      Updates the designated column with a character stream value, which will have the specified number of bytes.
      void updateCharacterStream(String columnLabel, Reader reader)
      Updates the designated column with a character stream value.
      void updateCharacterStream(String columnLabel, Reader reader, int length)
      Updates the designated column with a character stream value, which will have the specified number of bytes.
      void updateCharacterStream(String columnLabel, Reader reader, long length)
      Updates the designated column with a character stream value, which will have the specified number of bytes.
      void updateClob(int columnIndex, Clob x)
      Updates the designated column with a java.sql.Clob value.
      void updateClob(int columnIndex, Reader reader)
      Updates the designated column using the given Reader object.
      void updateClob(int columnIndex, Reader reader, long length)
      Updates the designated column using the given Reader object, which is the given number of characters long.
      void updateClob(String columnLabel, Clob x)
      Updates the designated column with a java.sql.Clob value.
      void updateClob(String columnLabel, Reader reader)
      Updates the designated column using the given Reader object.
      void updateClob(String columnLabel, Reader reader, long length)
      Updates the designated column using the given Reader object, which is the given number of characters long.
      void updateDate(int columnIndex, Date x)
      Updates the designated column with a java.sql.Date value.
      void updateDate(String columnLabel, Date x)
      Updates the designated column with a java.sql.Date value.
      void updateDouble(int columnIndex, double x)
      Updates the designated column with a double value.
      void updateDouble(String columnLabel, double x)
      Updates the designated column with a double value.
      void updateFloat(int columnIndex, float x)
      Updates the designated column with a float value.
      void updateFloat(String columnLabel, float x)
      Updates the designated column with a float value.
      void updateInt(int columnIndex, int x)
      Updates the designated column with an int value.
      void updateInt(String columnLabel, int x)
      Updates the designated column with an int value.
      void updateLong(int columnIndex, long x)
      Updates the designated column with a long value.
      void updateLong(String columnLabel, long x)
      Updates the designated column with a long value.
      void updateNCharacterStream(int columnIndex, Reader x)
      Updates the designated column with a character stream value.
      void updateNCharacterStream(int columnIndex, Reader x, long length)
      Updates the designated column with a character stream value, which will have the specified number of bytes.
      void updateNCharacterStream(String columnLabel, Reader reader)
      Updates the designated column with a character stream value.
      void updateNCharacterStream(String columnLabel, Reader reader, long length)
      Updates the designated column with a character stream value, which will have the specified number of bytes.
      void updateNClob(int columnIndex, NClob nClob)
      Updates the designated column with a java.sql.NClob value.
      void updateNClob(int columnIndex, Reader reader)
      Updates the designated column using the given Reader The data will be read from the stream as needed until end-of-stream is reached.
      void updateNClob(int columnIndex, Reader reader, long length)
      Updates the designated column using the given Reader object, which is the given number of characters long.
      void updateNClob(String columnLabel, NClob nClob)
      Updates the designated column with a java.sql.NClob value.
      void updateNClob(String columnLabel, Reader reader)
      Updates the designated column using the given Reader object.
      void updateNClob(String columnLabel, Reader reader, long length)
      Updates the designated column using the given Reader object, which is the given number of characters long.
      void updateNString(int columnIndex, String nString)
      Updates the designated column with a String value.
      void updateNString(String columnLabel, String nString)
      Updates the designated column with a String value.
      void updateNull(int columnIndex)
      Updates the designated column with a null value.
      void updateNull(String columnLabel)
      Updates the designated column with a null value.
      void updateObject(int columnIndex, Object x)
      Updates the designated column with an Object value.
      void updateObject(int columnIndex, Object x, int scaleOrLength)
      Updates the designated column with an Object value.
      void updateObject(String columnLabel, Object x)
      Updates the designated column with an Object value.
      void updateObject(String columnLabel, Object x, int scaleOrLength)
      Updates the designated column with an Object value.
      void updateRef(int columnIndex, Ref x)
      Updates the designated column with a java.sql.Ref value.
      void updateRef(String columnLabel, Ref x)
      Updates the designated column with a java.sql.Ref value.
      void updateRow()
      Updates the underlying database with the new contents of the current row of this ResultSet object.
      void updateRowId(int columnIndex, RowId x)
      Updates the designated column with a RowId value.
      void updateRowId(String columnLabel, RowId x)
      Updates the designated column with a RowId value.
      void updateShort(int columnIndex, short x)
      Updates the designated column with a short value.
      void updateShort(String columnLabel, short x)
      Updates the designated column with a short value.
      void updateSQLXML(int columnIndex, SQLXML xmlObject)
      Updates the designated column with a java.sql.SQLXML value.
      void updateSQLXML(String columnLabel, SQLXML xmlObject)
      Updates the designated column with a java.sql.SQLXML value.
      void updateString(int columnIndex, String x)
      Updates the designated column with a String value.
      void updateString(String columnLabel, String x)
      Updates the designated column with a String value.
      void updateTime(int columnIndex, Time x)
      Updates the designated column with a java.sql.Time value.
      void updateTime(String columnLabel, Time x)
      Updates the designated column with a java.sql.Time value.
      void updateTimestamp(int columnIndex, Timestamp x)
      Updates the designated column with a java.sql.Timestamp value.
      void updateTimestamp(String columnLabel, Timestamp x)
      Updates the designated column with a java.sql.Timestamp value.
      boolean wasNull()
      Reports whether the last column read had a value of SQL NULL.
    • Field Detail

      • FETCH_FORWARD

        static final int FETCH_FORWARD
        The constant indicating that the rows in a result set will be processed in a forward direction; first-to-last. This constant is used by the method setFetchDirection as a hint to the driver, which the driver may ignore.
        Since:
        1.2
        See Also:
        Constant Field Values
      • FETCH_REVERSE

        static final int FETCH_REVERSE
        The constant indicating that the rows in a result set will be processed in a reverse direction; last-to-first. This constant is used by the method setFetchDirection as a hint to the driver, which the driver may ignore.
        Since:
        1.2
        See Also:
        Constant Field Values
      • FETCH_UNKNOWN

        static final int FETCH_UNKNOWN
        The constant indicating that the order in which rows in a result set will be processed is unknown. This constant is used by the method setFetchDirection as a hint to the driver, which the driver may ignore.
        See Also:
        Constant Field Values
      • TYPE_FORWARD_ONLY

        static final int TYPE_FORWARD_ONLY
        The constant indicating the type for a ResultSet object whose cursor may move only forward.
        Since:
        1.2
        See Also:
        Constant Field Values
      • TYPE_SCROLL_INSENSITIVE

        static final int TYPE_SCROLL_INSENSITIVE
        The constant indicating the type for a ResultSet object that is scrollable but generally not sensitive to changes to the data that underlies the ResultSet.
        Since:
        1.2
        See Also:
        Constant Field Values
      • TYPE_SCROLL_SENSITIVE

        static final int TYPE_SCROLL_SENSITIVE
        The constant indicating the type for a ResultSet object that is scrollable and generally sensitive to changes to the data that underlies the ResultSet.
        Since:
        1.2
        See Also:
        Constant Field Values
      • CONCUR_READ_ONLY

        static final int CONCUR_READ_ONLY
        The constant indicating the concurrency mode for a ResultSet object that may NOT be updated.
        Since:
        1.2
        See Also:
        Constant Field Values
      • CONCUR_UPDATABLE

        static final int CONCUR_UPDATABLE
        The constant indicating the concurrency mode for a ResultSet object that may be updated.
        Since:
        1.2
        See Also:
        Constant Field Values
      • HOLD_CURSORS_OVER_COMMIT

        static final int HOLD_CURSORS_OVER_COMMIT
        The constant indicating that open ResultSet objects with this holdability will remain open when the current transaction is commited.
        Since:
        1.4
        See Also:
        Constant Field Values
      • CLOSE_CURSORS_AT_COMMIT

        static final int CLOSE_CURSORS_AT_COMMIT
        The constant indicating that open ResultSet objects with this holdability will be closed when the current transaction is commited.
        Since:
        1.4
        See Also:
        Constant Field Values
    • Method Detail

      • next

        boolean next()
                     throws SQLException
        Moves the cursor froward one row from its current position. A ResultSet cursor is initially positioned before the first row; the first call to the method next makes the first row the current row; the second call makes the second row the current row, and so on.

        When a call to the next method returns false, the cursor is positioned after the last row. Any invocation of a ResultSet method which requires a current row will result in a SQLException being thrown. If the result set type is TYPE_FORWARD_ONLY, it is vendor specified whether their JDBC driver implementation will return false or throw an SQLException on a subsequent call to next.

        If an input stream is open for the current row, a call to the method next will implicitly close it. A ResultSet object's warning chain is cleared when a new row is read.

        Returns:
        true if the new current row is valid; false if there are no more rows
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
      • close

        void close()
                   throws SQLException
        Releases this ResultSet object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed.

        The closing of a ResultSet object does not close the Blob, Clob or NClob objects created by the ResultSet. Blob, Clob or NClob objects remain valid for at least the duration of the transaction in which they are creataed, unless their free method is invoked.

        When a ResultSet is closed, any ResultSetMetaData instances that were created by calling the getMetaData method remain accessible.

        Note: A ResultSet object is automatically closed by the Statement object that generated it when that Statement object is closed, re-executed, or is used to retrieve the next result from a sequence of multiple results.

        Calling the method close on a ResultSet object that is already closed is a no-op.

         

        Specified by:
        close in interface  AutoCloseable
        Throws:
        SQLException - if a database access error occurs
      • wasNull

        boolean wasNull()
                        throws SQLException
        Reports whether the last column read had a value of SQL NULL. Note that you must first call one of the getter methods on a column to try to read its value and then call the method wasNull to see if the value read was SQL NULL.
        Returns:
        true if the last column value read was SQL NULL and false otherwise
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
      • getString

        String getString(int columnIndex)
                         throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getBoolean

        boolean getBoolean(int columnIndex)
                           throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a boolean in the Java programming language.

        If the designated column has a datatype of CHAR or VARCHAR and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT and contains a 0, a value of false is returned. If the designated column has a datatype of CHAR or VARCHAR and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT and contains a 1, a value of true is returned.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is false
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getByte

        byte getByte(int columnIndex)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a byte in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getShort

        short getShort(int columnIndex)
                       throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a short in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getInt

        int getInt(int columnIndex)
                   throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as an int in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getLong

        long getLong(int columnIndex)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a long in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getFloat

        float getFloat(int columnIndex)
                       throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a float in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getDouble

        double getDouble(int columnIndex)
                         throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a double in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getBigDecimal

        BigDecimal getBigDecimal(int columnIndex,
                               int scale)
                                 throws SQLException
        Deprecated. 
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.BigDecimal in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        scale - the number of digits to the right of the decimal point
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
      • getBytes

        byte[] getBytes(int columnIndex)
                        throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a byte array in the Java programming language. The bytes represent the raw values returned by the driver.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getDate

        Date getDate(int columnIndex)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getTime

        Time getTime(int columnIndex)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getTimestamp

        Timestamp getTimestamp(int columnIndex)
                               throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getAsciiStream

        InputStream getAsciiStream(int columnIndex)
                                   throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a stream of ASCII characters. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARCHAR values. The JDBC driver will do any necessary conversion from the database format into ASCII.

        Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method InputStream.available is called whether there is data available or not.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        a Java input stream that delivers the database column value as a stream of one-byte ASCII characters; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getUnicodeStream

        InputStream getUnicodeStream(int columnIndex)
                                     throws SQLException
        Deprecated. use getCharacterStream in place of getUnicodeStream
        Retrieves the value of the designated column in the current row of this ResultSet object as as a stream of two-byte 3 characters. The first byte is the high byte; the second byte is the low byte. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARCHARvalues. The JDBC driver will do any necessary conversion from the database format into Unicode.

        Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method InputStream.available is called, whether there is data available or not.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        a Java input stream that delivers the database column value as a stream of two-byte Unicode characters; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
      • getBinaryStream

        InputStream getBinaryStream(int columnIndex)
                                    throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a stream of uninterpreted bytes. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARBINARY values.

        Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method InputStream.available is called whether there is data available or not.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        a Java input stream that delivers the database column value as a stream of uninterpreted bytes; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getString

        String getString(String columnLabel)
                         throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getBoolean

        boolean getBoolean(String columnLabel)
                           throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a boolean in the Java programming language.

        If the designated column has a datatype of CHAR or VARCHAR and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT and contains a 0, a value of false is returned. If the designated column has a datatype of CHAR or VARCHAR and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT and contains a 1, a value of true is returned.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is false
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getByte

        byte getByte(String columnLabel)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a byte in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getShort

        short getShort(String columnLabel)
                       throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a short in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getInt

        int getInt(String columnLabel)
                   throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as an int in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getLong

        long getLong(String columnLabel)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a long in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getFloat

        float getFloat(String columnLabel)
                       throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a float in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getDouble

        double getDouble(String columnLabel)
                         throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a double in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is 0
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getBigDecimal

        BigDecimal getBigDecimal(String columnLabel,
                               int scale)
                                 throws SQLException
        Deprecated. 
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.math.BigDecimal in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        scale - the number of digits to the right of the decimal point
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
      • getBytes

        byte[] getBytes(String columnLabel)
                        throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a byte array in the Java programming language. The bytes represent the raw values returned by the driver.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getDate

        Date getDate(String columnLabel)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getTime

        Time getTime(String columnLabel)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getTimestamp

        Timestamp getTimestamp(String columnLabel)
                               throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getAsciiStream

        InputStream getAsciiStream(String columnLabel)
                                   throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a stream of ASCII characters. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARCHAR values. The JDBC driver will do any necessary conversion from the database format into ASCII.

        Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method available is called whether there is data available or not.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        a Java input stream that delivers the database column value as a stream of one-byte ASCII characters. If the value is SQL NULL, the value returned is null.
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getUnicodeStream

        InputStream getUnicodeStream(String columnLabel)
                                     throws SQLException
        Deprecated. use getCharacterStream instead
        Retrieves the value of the designated column in the current row of this ResultSet object as a stream of two-byte Unicode characters. The first byte is the high byte; the second byte is the low byte. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARCHAR values. The JDBC technology-enabled driver will do any necessary conversion from the database format into Unicode.

        Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method InputStream.available is called, whether there is data available or not.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        a Java input stream that delivers the database column value as a stream of two-byte Unicode characters. If the value is SQL NULL, the value returned is null.
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
      • getBinaryStream

        InputStream getBinaryStream(String columnLabel)
                                    throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a stream of uninterpreted bytes. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large LONGVARBINARY values.

        Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return 0 when the method available is called whether there is data available or not.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        a Java input stream that delivers the database column value as a stream of uninterpreted bytes; if the value is SQL NULL, the result is null
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • getWarnings

        SQLWarning getWarnings()
                               throws SQLException
        Retrieves the first warning reported by calls on this ResultSet object. Subsequent warnings on this ResultSet object will be chained to the SQLWarning object that this method returns.

        The warning chain is automatically cleared each time a new row is read. This method may not be called on a ResultSet object that has been closed; doing so will cause an SQLException to be thrown.

        Note: This warning chain only covers warnings caused by ResultSet methods. Any warning caused by Statement methods (such as reading OUT parameters) will be chained on the Statement object.

        Returns:
        the first SQLWarning object reported or null if there are none
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
      • clearWarnings

        void clearWarnings()
                           throws SQLException
        Clears all warnings reported on this ResultSet object. After this method is called, the method getWarnings returns null until a new warning is reported for this ResultSet object.
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
      • getCursorName

        String getCursorName()
                             throws SQLException
        Retrieves the name of the SQL cursor used by this ResultSet object.

        In SQL, a result table is retrieved through a cursor that is named. The current row of a result set can be updated or deleted using a positioned update/delete statement that references the cursor name. To insure that the cursor has the proper isolation level to support update, the cursor's SELECT statement should be of the form SELECT FOR UPDATE. If FOR UPDATE is omitted, the positioned updates may fail.

        The JDBC API supports this SQL feature by providing the name of the SQL cursor used by a ResultSet object. The current row of a ResultSet object is also the current row of this SQL cursor.

        Returns:
        the SQL name for this ResultSet object's cursor
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
      • getMetaData

        ResultSetMetaData getMetaData()
                                      throws SQLException
        Retrieves the number, types and properties of this ResultSet object's columns.
        Returns:
        the description of this ResultSet object's columns
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
      • getObject

        Object getObject(int columnIndex)
                         throws SQLException

        Gets the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.

        This method will return the value of the given column as a Java object. The type of the Java object will be the default Java object type corresponding to the column's SQL type, following the mapping for built-in types specified in the JDBC specification. If the value is an SQL NULL, the driver returns a Java null.

        This method may also be used to read database-specific abstract data types. In the JDBC 2.0 API, the behavior of method getObject is extended to materialize data of SQL user-defined types.

        If Connection.getTypeMap does not throw a SQLFeatureNotSupportedException, then when a column contains a structured or distinct value, the behavior of this method is as if it were a call to: getObject(columnIndex, this.getStatement().getConnection().getTypeMap()). If Connection.getTypeMap does throw a SQLFeatureNotSupportedException, then structured values are not supported, and distinct values are mapped to the default Java class as determined by the underlying SQL type of the DISTINCT type.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        a java.lang.Object holding the column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
      • getObject

        Object getObject(String columnLabel)
                         throws SQLException

        Gets the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.

        This method will return the value of the given column as a Java object. The type of the Java object will be the default Java object type corresponding to the column's SQL type, following the mapping for built-in types specified in the JDBC specification. If the value is an SQL NULL, the driver returns a Java null.

        This method may also be used to read database-specific abstract data types.

        In the JDBC 2.0 API, the behavior of the method getObject is extended to materialize data of SQL user-defined types. When a column contains a structured or distinct value, the behavior of this method is as if it were a call to: getObject(columnIndex, this.getStatement().getConnection().getTypeMap()).

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        a java.lang.Object holding the column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
      • findColumn

        int findColumn(String columnLabel)
                       throws SQLException
        Maps the given ResultSet column label to its ResultSet column index.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column index of the given column name
        Throws:
        SQLException - if the ResultSet object does not contain a column labeled columnLabel, a database access error occurs or this method is called on a closed result set
      • getCharacterStream

        Reader getCharacterStream(int columnIndex)
                                  throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        a java.io.Reader object that contains the column value; if the value is SQL NULL, the value returned is null in the Java programming language.
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • getCharacterStream

        Reader getCharacterStream(String columnLabel)
                                  throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        a java.io.Reader object that contains the column value; if the value is SQL NULL, the value returned is null in the Java programming language
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • getBigDecimal

        BigDecimal getBigDecimal(int columnIndex)
                                 throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.math.BigDecimal with full precision.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value (full precision); if the value is SQL NULL, the value returned is null in the Java programming language.
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • getBigDecimal

        BigDecimal getBigDecimal(String columnLabel)
                                 throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.math.BigDecimal with full precision.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value (full precision); if the value is SQL NULL, the value returned is null in the Java programming language.
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • isBeforeFirst

        boolean isBeforeFirst()
                              throws SQLException
        Retrieves whether the cursor is before the first row in this ResultSet object.

        Note:Support for the isBeforeFirst method is optional for ResultSets with a result set type of TYPE_FORWARD_ONLY

        Returns:
        true if the cursor is before the first row; false if the cursor is at any other position or the result set contains no rows
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • isAfterLast

        boolean isAfterLast()
                            throws SQLException
        Retrieves whether the cursor is after the last row in this ResultSet object.

        Note:Support for the isAfterLast method is optional for ResultSets with a result set type of TYPE_FORWARD_ONLY

        Returns:
        true if the cursor is after the last row; false if the cursor is at any other position or the result set contains no rows
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • isFirst

        boolean isFirst()
                        throws SQLException
        Retrieves whether the cursor is on the first row of this ResultSet object.

        Note:Support for the isFirst method is optional for ResultSets with a result set type of TYPE_FORWARD_ONLY

        Returns:
        true if the cursor is on the first row; false otherwise
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • isLast

        boolean isLast()
                       throws SQLException
        Retrieves whether the cursor is on the last row of this ResultSet object. Note: Calling the method isLast may be expensive because the JDBC driver might need to fetch ahead one row in order to determine whether the current row is the last row in the result set.

        Note: Support for the isLast method is optional for ResultSets with a result set type of TYPE_FORWARD_ONLY

        Returns:
        true if the cursor is on the last row; false otherwise
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • beforeFirst

        void beforeFirst()
                         throws SQLException
        Moves the cursor to the front of this ResultSet object, just before the first row. This method has no effect if the result set contains no rows.
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set or the result set type is TYPE_FORWARD_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • afterLast

        void afterLast()
                       throws SQLException
        Moves the cursor to the end of this ResultSet object, just after the last row. This method has no effect if the result set contains no rows.
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set or the result set type is TYPE_FORWARD_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • first

        boolean first()
                      throws SQLException
        Moves the cursor to the first row in this ResultSet object.
        Returns:
        true if the cursor is on a valid row; false if there are no rows in the result set
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set or the result set type is TYPE_FORWARD_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • last

        boolean last()
                     throws SQLException
        Moves the cursor to the last row in this ResultSet object.
        Returns:
        true if the cursor is on a valid row; false if there are no rows in the result set
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set or the result set type is TYPE_FORWARD_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getRow

        int getRow()
                   throws SQLException
        Retrieves the current row number. The first row is number 1, the second number 2, and so on.

        Note:Support for the getRow method is optional for ResultSets with a result set type of TYPE_FORWARD_ONLY

        Returns:
        the current row number; 0 if there is no current row
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • absolute

        boolean absolute(int row)
                         throws SQLException
        Moves the cursor to the given row number in this ResultSet object.

        If the row number is positive, the cursor moves to the given row number with respect to the beginning of the result set. The first row is row 1, the second is row 2, and so on.

        If the given row number is negative, the cursor moves to an absolute row position with respect to the end of the result set. For example, calling the method absolute(-1) positions the cursor on the last row; calling the method absolute(-2) moves the cursor to the next-to-last row, and so on.

        If the row number specified is zero, the cursor is moved to before the first row.

        An attempt to position the cursor beyond the first/last row in the result set leaves the cursor before the first row or after the last row.

        Note: Calling absolute(1) is the same as calling first(). Calling absolute(-1) is the same as calling last().

        Parameters:
        row - the number of the row to which the cursor should move. A value of zero indicates that the cursor will be positioned before the first row; a positive number indicates the row number counting from the beginning of the result set; a negative number indicates the row number counting from the end of the result set
        Returns:
        true if the cursor is moved to a position in this ResultSet object; false if the cursor is before the first row or after the last row
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set or the result set type is TYPE_FORWARD_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • relative

        boolean relative(int rows)
                         throws SQLException
        Moves the cursor a relative number of rows, either positive or negative. Attempting to move beyond the first/last row in the result set positions the cursor before/after the the first/last row. Calling relative(0) is valid, but does not change the cursor position.

        Note: Calling the method relative(1) is identical to calling the method next() and calling the method relative(-1) is identical to calling the method previous().

        Parameters:
        rows - an int specifying the number of rows to move from the current row; a positive number moves the cursor forward; a negative number moves the cursor backward
        Returns:
        true if the cursor is on a row; false otherwise
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set or the result set type is TYPE_FORWARD_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • previous

        boolean previous()
                         throws SQLException
        Moves the cursor to the previous row in this ResultSet object.

        When a call to the previous method returns false, the cursor is positioned before the first row. Any invocation of a ResultSet method which requires a current row will result in a SQLException being thrown.

        If an input stream is open for the current row, a call to the method previous will implicitly close it. A ResultSet object's warning change is cleared when a new row is read.

        Returns:
        true if the cursor is now positioned on a valid row; false if the cursor is positioned before the first row
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set or the result set type is TYPE_FORWARD_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • setFetchDirection

        void setFetchDirection(int direction)
                               throws SQLException
        Gives a hint as to the direction in which the rows in this ResultSet object will be processed. The initial value is determined by the Statement object that produced this ResultSet object. The fetch direction may be changed at any time.
        Parameters:
        direction - an int specifying the suggested fetch direction; one of ResultSet.FETCH_FORWARD, ResultSet.FETCH_REVERSE, or ResultSet.FETCH_UNKNOWN
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set or the result set type is TYPE_FORWARD_ONLY and the fetch direction is not FETCH_FORWARD
        Since:
        1.2
        See Also:
        Statement.setFetchDirection(int), getFetchDirection()
      • getFetchDirection

        int getFetchDirection()
                              throws SQLException
        Retrieves the fetch direction for this ResultSet object.
        Returns:
        the current fetch direction for this ResultSet object
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
        See Also:
        setFetchDirection(int)
      • setFetchSize

        void setFetchSize(int rows)
                          throws SQLException
        Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. The default value is set by the Statement object that created the result set. The fetch size may be changed at any time.
        Parameters:
        rows - the number of rows to fetch
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set or the condition rows >= 0 is not satisfied
        Since:
        1.2
        See Also:
        getFetchSize()
      • getFetchSize

        int getFetchSize()
                         throws SQLException
        Retrieves the fetch size for this ResultSet object.
        Returns:
        the current fetch size for this ResultSet object
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
        See Also:
        setFetchSize(int)
      • getType

        int getType()
                    throws SQLException
        Retrieves the type of this ResultSet object. The type is determined by the Statement object that created the result set.
        Returns:
        ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, or ResultSet.TYPE_SCROLL_SENSITIVE
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • getConcurrency

        int getConcurrency()
                           throws SQLException
        Retrieves the concurrency mode of this ResultSet object. The concurrency used is determined by the Statement object that created the result set.
        Returns:
        the concurrency type, either ResultSet.CONCUR_READ_ONLY or ResultSet.CONCUR_UPDATABLE
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • rowUpdated

        boolean rowUpdated()
                           throws SQLException
        Retrieves whether the current row has been updated. The value returned depends on whether or not the result set can detect updates.

        Note: Support for the rowUpdated method is optional with a result set concurrency of CONCUR_READ_ONLY

        Returns:
        true if the current row is detected to have been visibly updated by the owner or another; false otherwise
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
        See Also:
        DatabaseMetaData.updatesAreDetected(int)
      • rowInserted

        boolean rowInserted()
                            throws SQLException
        Retrieves whether the current row has had an insertion. The value returned depends on whether or not this ResultSet object can detect visible inserts.

        Note: Support for the rowInserted method is optional with a result set concurrency of CONCUR_READ_ONLY

        Returns:
        true if the current row is detected to have been inserted; false otherwise
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
        See Also:
        DatabaseMetaData.insertsAreDetected(int)
      • rowDeleted

        boolean rowDeleted()
                           throws SQLException
        Retrieves whether a row has been deleted. A deleted row may leave a visible "hole" in a result set. This method can be used to detect holes in a result set. The value returned depends on whether or not this ResultSet object can detect deletions.

        Note: Support for the rowDeleted method is optional with a result set concurrency of CONCUR_READ_ONLY

        Returns:
        true if the current row is detected to have been deleted by the owner or another; false otherwise
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
        See Also:
        DatabaseMetaData.deletesAreDetected(int)
      • updateNull

        void updateNull(int columnIndex)
                        throws SQLException
        Updates the designated column with a null value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateBoolean

        void updateBoolean(int columnIndex,
                         boolean x)
                           throws SQLException
        Updates the designated column with a boolean value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateByte

        void updateByte(int columnIndex,
                      byte x)
                        throws SQLException
        Updates the designated column with a byte value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateShort

        void updateShort(int columnIndex,
                       short x)
                         throws SQLException
        Updates the designated column with a short value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateInt

        void updateInt(int columnIndex,
                     int x)
                       throws SQLException
        Updates the designated column with an int value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateLong

        void updateLong(int columnIndex,
                      long x)
                        throws SQLException
        Updates the designated column with a long value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateFloat

        void updateFloat(int columnIndex,
                       float x)
                         throws SQLException
        Updates the designated column with a float value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateDouble

        void updateDouble(int columnIndex,
                        double x)
                          throws SQLException
        Updates the designated column with a double value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateBigDecimal

        void updateBigDecimal(int columnIndex,
                            BigDecimal x)
                              throws SQLException
        Updates the designated column with a java.math.BigDecimal value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateString

        void updateString(int columnIndex,
                        String x)
                          throws SQLException
        Updates the designated column with a String value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateBytes

        void updateBytes(int columnIndex,
                       byte[] x)
                         throws SQLException
        Updates the designated column with a byte array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateDate

        void updateDate(int columnIndex,
                      Date x)
                        throws SQLException
        Updates the designated column with a java.sql.Date value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateTime

        void updateTime(int columnIndex,
                      Time x)
                        throws SQLException
        Updates the designated column with a java.sql.Time value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateTimestamp

        void updateTimestamp(int columnIndex,
                           Timestamp x)
                             throws SQLException
        Updates the designated column with a java.sql.Timestamp value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateAsciiStream

        void updateAsciiStream(int columnIndex,
                             InputStream x,
                             int length)
                               throws SQLException
        Updates the designated column with an ascii stream value, which will have the specified number of bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateBinaryStream

        void updateBinaryStream(int columnIndex,
                              InputStream x,
                              int length)
                                throws SQLException
        Updates the designated column with a binary stream value, which will have the specified number of bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateCharacterStream

        void updateCharacterStream(int columnIndex,
                                 Reader x,
                                 int length)
                                   throws SQLException
        Updates the designated column with a character stream value, which will have the specified number of bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateObject

        void updateObject(int columnIndex,
                        Object x,
                        int scaleOrLength)
                          throws SQLException
        Updates the designated column with an Object value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        If the second argument is an InputStream then the stream must contain the number of bytes specified by scaleOrLength. If the second argument is a Reader then the reader must contain the number of characters specified by scaleOrLength. If these conditions are not true the driver will generate a SQLException when the statement is executed.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        scaleOrLength - for an object of java.math.BigDecimal , this is the number of digits after the decimal point. For Java Object types InputStream and Reader, this is the length of the data in the stream or reader. For all other types, this value will be ignored.
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateObject

        void updateObject(int columnIndex,
                        Object x)
                          throws SQLException
        Updates the designated column with an Object value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateNull

        void updateNull(String columnLabel)
                        throws SQLException
        Updates the designated column with a null value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateBoolean

        void updateBoolean(String columnLabel,
                         boolean x)
                           throws SQLException
        Updates the designated column with a boolean value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateByte

        void updateByte(String columnLabel,
                      byte x)
                        throws SQLException
        Updates the designated column with a byte value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateShort

        void updateShort(String columnLabel,
                       short x)
                         throws SQLException
        Updates the designated column with a short value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateInt

        void updateInt(String columnLabel,
                     int x)
                       throws SQLException
        Updates the designated column with an int value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateLong

        void updateLong(String columnLabel,
                      long x)
                        throws SQLException
        Updates the designated column with a long value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateFloat

        void updateFloat(String columnLabel,
                       float x)
                         throws SQLException
        Updates the designated column with a float value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateDouble

        void updateDouble(String columnLabel,
                        double x)
                          throws SQLException
        Updates the designated column with a double value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateBigDecimal

        void updateBigDecimal(String columnLabel,
                            BigDecimal x)
                              throws SQLException
        Updates the designated column with a java.sql.BigDecimal value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateString

        void updateString(String columnLabel,
                        String x)
                          throws SQLException
        Updates the designated column with a String value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateBytes

        void updateBytes(String columnLabel,
                       byte[] x)
                         throws SQLException
        Updates the designated column with a byte array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateDate

        void updateDate(String columnLabel,
                      Date x)
                        throws SQLException
        Updates the designated column with a java.sql.Date value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateTime

        void updateTime(String columnLabel,
                      Time x)
                        throws SQLException
        Updates the designated column with a java.sql.Time value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateTimestamp

        void updateTimestamp(String columnLabel,
                           Timestamp x)
                             throws SQLException
        Updates the designated column with a java.sql.Timestamp value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateAsciiStream

        void updateAsciiStream(String columnLabel,
                             InputStream x,
                             int length)
                               throws SQLException
        Updates the designated column with an ascii stream value, which will have the specified number of bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateBinaryStream

        void updateBinaryStream(String columnLabel,
                              InputStream x,
                              int length)
                                throws SQLException
        Updates the designated column with a binary stream value, which will have the specified number of bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateCharacterStream

        void updateCharacterStream(String columnLabel,
                                 Reader reader,
                                 int length)
                                   throws SQLException
        Updates the designated column with a character stream value, which will have the specified number of bytes. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        reader - the java.io.Reader object containing the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateObject

        void updateObject(String columnLabel,
                        Object x,
                        int scaleOrLength)
                          throws SQLException
        Updates the designated column with an Object value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        If the second argument is an InputStream then the stream must contain the number of bytes specified by scaleOrLength. If the second argument is a Reader then the reader must contain the number of characters specified by scaleOrLength. If these conditions are not true the driver will generate a SQLException when the statement is executed.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        scaleOrLength - for an object of java.math.BigDecimal , this is the number of digits after the decimal point. For Java Object types InputStream and Reader, this is the length of the data in the stream or reader. For all other types, this value will be ignored.
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateObject

        void updateObject(String columnLabel,
                        Object x)
                          throws SQLException
        Updates the designated column with an Object value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • insertRow

        void insertRow()
                       throws SQLException
        Inserts the contents of the insert row into this ResultSet object and into the database. The cursor must be on the insert row when this method is called.
        Throws:
        SQLException - if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY, this method is called on a closed result set, if this method is called when the cursor is not on the insert row, or if not all of non-nullable columns in the insert row have been given a non-null value
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • updateRow

        void updateRow()
                       throws SQLException
        Updates the underlying database with the new contents of the current row of this ResultSet object. This method cannot be called when the cursor is on the insert row.
        Throws:
        SQLException - if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY; this method is called on a closed result set or if this method is called when the cursor is on the insert row
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • deleteRow

        void deleteRow()
                       throws SQLException
        Deletes the current row from this ResultSet object and from the underlying database. This method cannot be called when the cursor is on the insert row.
        Throws:
        SQLException - if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY; this method is called on a closed result set or if this method is called when the cursor is on the insert row
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • refreshRow

        void refreshRow()
                        throws SQLException
        Refreshes the current row with its most recent value in the database. This method cannot be called when the cursor is on the insert row.

        The refreshRow method provides a way for an application to explicitly tell the JDBC driver to refetch a row(s) from the database. An application may want to call refreshRow when caching or prefetching is being done by the JDBC driver to fetch the latest value of a row from the database. The JDBC driver may actually refresh multiple rows at once if the fetch size is greater than one.

        All values are refetched subject to the transaction isolation level and cursor sensitivity. If refreshRow is called after calling an updater method, but before calling the method updateRow, then the updates made to the row are lost. Calling the method refreshRow frequently will likely slow performance.

        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set; the result set type is TYPE_FORWARD_ONLY or if this method is called when the cursor is on the insert row
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method or this method is not supported for the specified result set type and result set concurrency.
        Since:
        1.2
      • cancelRowUpdates

        void cancelRowUpdates()
                              throws SQLException
        Cancels the updates made to the current row in this ResultSet object. This method may be called after calling an updater method(s) and before calling the method updateRow to roll back the updates made to a row. If no updates have been made or updateRow has already been called, this method has no effect.
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set; the result set concurrency is CONCUR_READ_ONLY or if this method is called when the cursor is on the insert row
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • moveToInsertRow

        void moveToInsertRow()
                             throws SQLException
        Moves the cursor to the insert row. The current cursor position is remembered while the cursor is positioned on the insert row. The insert row is a special row associated with an updatable result set. It is essentially a buffer where a new row may be constructed by calling the updater methods prior to inserting the row into the result set. Only the updater, getter, and insertRow methods may be called when the cursor is on the insert row. All of the columns in a result set must be given a value each time this method is called before calling insertRow. An updater method must be called before a getter method can be called on a column value.
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set or the result set concurrency is CONCUR_READ_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • moveToCurrentRow

        void moveToCurrentRow()
                              throws SQLException
        Moves the cursor to the remembered cursor position, usually the current row. This method has no effect if the cursor is not on the insert row.
        Throws:
        SQLException - if a database access error occurs; this method is called on a closed result set or the result set concurrency is CONCUR_READ_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getStatement

        Statement getStatement()
                               throws SQLException
        Retrieves the Statement object that produced this ResultSet object. If the result set was generated some other way, such as by a DatabaseMetaData method, this method may return null.
        Returns:
        the Statment object that produced this ResultSet object or null if the result set was produced some other way
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • getObject

        Object getObject(int columnIndex,
                       Map<String,Class<?>> map)
                         throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language. If the value is an SQL NULL, the driver returns a Java null. This method uses the given Map object for the custom mapping of the SQL structured or distinct type that is being retrieved.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        map - a java.util.Map object that contains the mapping from SQL type names to classes in the Java programming language
        Returns:
        an Object in the Java programming language representing the SQL value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getRef

        Ref getRef(int columnIndex)
                   throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a Ref object in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        a Ref object representing an SQL REF value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getBlob

        Blob getBlob(int columnIndex)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a Blob object in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        a Blob object representing the SQL BLOB value in the specified column
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getClob

        Clob getClob(int columnIndex)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a Clob object in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        a Clob object representing the SQL CLOB value in the specified column
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getArray

        Array getArray(int columnIndex)
                       throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as an Array object in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        an Array object representing the SQL ARRAY value in the specified column
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getObject

        Object getObject(String columnLabel,
                       Map<String,Class<?>> map)
                         throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language. If the value is an SQL NULL, the driver returns a Java null. This method uses the specified Map object for custom mapping if appropriate.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        map - a java.util.Map object that contains the mapping from SQL type names to classes in the Java programming language
        Returns:
        an Object representing the SQL value in the specified column
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getRef

        Ref getRef(String columnLabel)
                   throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a Ref object in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        a Ref object representing the SQL REF value in the specified column
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getBlob

        Blob getBlob(String columnLabel)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a Blob object in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        a Blob object representing the SQL BLOB value in the specified column
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getClob

        Clob getClob(String columnLabel)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a Clob object in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        a Clob object representing the SQL CLOB value in the specified column
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getArray

        Array getArray(String columnLabel)
                       throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as an Array object in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        an Array object representing the SQL ARRAY value in the specified column
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.2
      • getDate

        Date getDate(int columnIndex,
                   Calendar cal)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the date if the underlying database does not store timezone information.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        cal - the java.util.Calendar object to use in constructing the date
        Returns:
        the column value as a java.sql.Date object; if the value is SQL NULL, the value returned is null in the Java programming language
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • getDate

        Date getDate(String columnLabel,
                   Calendar cal)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the date if the underlying database does not store timezone information.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        cal - the java.util.Calendar object to use in constructing the date
        Returns:
        the column value as a java.sql.Date object; if the value is SQL NULL, the value returned is null in the Java programming language
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • getTime

        Time getTime(int columnIndex,
                   Calendar cal)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the time if the underlying database does not store timezone information.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        cal - the java.util.Calendar object to use in constructing the time
        Returns:
        the column value as a java.sql.Time object; if the value is SQL NULL, the value returned is null in the Java programming language
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • getTime

        Time getTime(String columnLabel,
                   Calendar cal)
                     throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the time if the underlying database does not store timezone information.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        cal - the java.util.Calendar object to use in constructing the time
        Returns:
        the column value as a java.sql.Time object; if the value is SQL NULL, the value returned is null in the Java programming language
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • getTimestamp

        Timestamp getTimestamp(int columnIndex,
                             Calendar cal)
                               throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the timestamp if the underlying database does not store timezone information.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        cal - the java.util.Calendar object to use in constructing the timestamp
        Returns:
        the column value as a java.sql.Timestamp object; if the value is SQL NULL, the value returned is null in the Java programming language
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • getTimestamp

        Timestamp getTimestamp(String columnLabel,
                             Calendar cal)
                               throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the timestamp if the underlying database does not store timezone information.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        cal - the java.util.Calendar object to use in constructing the date
        Returns:
        the column value as a java.sql.Timestamp object; if the value is SQL NULL, the value returned is null in the Java programming language
        Throws:
        SQLException - if the columnLabel is not valid or if a database access error occurs or this method is called on a closed result set
        Since:
        1.2
      • getURL

        URL getURL(int columnIndex)
                   throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.net.URL object in the Java programming language.
        Parameters:
        columnIndex - the index of the column 1 is the first, 2 is the second,...
        Returns:
        the column value as a java.net.URL object; if the value is SQL NULL, the value returned is null in the Java programming language
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; this method is called on a closed result set or if a URL is malformed
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.4
      • getURL

        URL getURL(String columnLabel)
                   throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.net.URL object in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value as a java.net.URL object; if the value is SQL NULL, the value returned is null in the Java programming language
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; this method is called on a closed result set or if a URL is malformed
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.4
      • updateRef

        void updateRef(int columnIndex,
                     Ref x)
                       throws SQLException
        Updates the designated column with a java.sql.Ref value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.4
      • updateRef

        void updateRef(String columnLabel,
                     Ref x)
                       throws SQLException
        Updates the designated column with a java.sql.Ref value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.4
      • updateBlob

        void updateBlob(int columnIndex,
                      Blob x)
                        throws SQLException
        Updates the designated column with a java.sql.Blob value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.4
      • updateBlob

        void updateBlob(String columnLabel,
                      Blob x)
                        throws SQLException
        Updates the designated column with a java.sql.Blob value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.4
      • updateClob

        void updateClob(int columnIndex,
                      Clob x)
                        throws SQLException
        Updates the designated column with a java.sql.Clob value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.4
      • updateClob

        void updateClob(String columnLabel,
                      Clob x)
                        throws SQLException
        Updates the designated column with a java.sql.Clob value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.4
      • updateArray

        void updateArray(int columnIndex,
                       Array x)
                         throws SQLException
        Updates the designated column with a java.sql.Array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.4
      • updateArray

        void updateArray(String columnLabel,
                       Array x)
                         throws SQLException
        Updates the designated column with a java.sql.Array value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.4
      • getRowId

        RowId getRowId(int columnIndex)
                       throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.RowId object in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second 2, ...
        Returns:
        the column value; if the value is a SQL NULL the value returned is null
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • getRowId

        RowId getRowId(String columnLabel)
                       throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.RowId object in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value ; if the value is a SQL NULL the value returned is null
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateRowId

        void updateRowId(int columnIndex,
                       RowId x)
                         throws SQLException
        Updates the designated column with a RowId value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second 2, ...
        x - the column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateRowId

        void updateRowId(String columnLabel,
                       RowId x)
                         throws SQLException
        Updates the designated column with a RowId value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • getHoldability

        int getHoldability()
                           throws SQLException
        Retrieves the holdability of this ResultSet object
        Returns:
        either ResultSet.HOLD_CURSORS_OVER_COMMIT or ResultSet.CLOSE_CURSORS_AT_COMMIT
        Throws:
        SQLException - if a database access error occurs or this method is called on a closed result set
        Since:
        1.6
      • isClosed

        boolean isClosed()
                         throws SQLException
        Retrieves whether this ResultSet object has been closed. A ResultSet is closed if the method close has been called on it, or if it is automatically closed.
        Returns:
        true if this ResultSet object is closed; false if it is still open
        Throws:
        SQLException - if a database access error occurs
        Since:
        1.6
      • updateNString

        void updateNString(int columnIndex,
                         String nString)
                           throws SQLException
        Updates the designated column with a String value. It is intended for use when updating NCHAR, NVARCHAR and LONGNVARCHAR columns. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second 2, ...
        nString - the value for the column to be updated
        Throws:
        SQLException - if the columnIndex is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; the result set concurrency is CONCUR_READ_ONLY or if a database access error occurs
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateNString

        void updateNString(String columnLabel,
                         String nString)
                           throws SQLException
        Updates the designated column with a String value. It is intended for use when updating NCHAR, NVARCHAR and LONGNVARCHAR columns. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        nString - the value for the column to be updated
        Throws:
        SQLException - if the columnLabel is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; the result set concurrency is CONCUR_READ_ONLY or if a database access error occurs
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateNClob

        void updateNClob(int columnIndex,
                       NClob nClob)
                         throws SQLException
        Updates the designated column with a java.sql.NClob value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second 2, ...
        nClob - the value for the column to be updated
        Throws:
        SQLException - if the columnIndex is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; if a database access error occurs or the result set concurrency is CONCUR_READ_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateNClob

        void updateNClob(String columnLabel,
                       NClob nClob)
                         throws SQLException
        Updates the designated column with a java.sql.NClob value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        nClob - the value for the column to be updated
        Throws:
        SQLException - if the columnLabel is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; if a database access error occurs or the result set concurrency is CONCUR_READ_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • getNClob

        NClob getNClob(int columnIndex)
                       throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a NClob object in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        a NClob object representing the SQL NCLOB value in the specified column
        Throws:
        SQLException - if the columnIndex is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set or if a database access error occurs
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • getNClob

        NClob getNClob(String columnLabel)
                       throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a NClob object in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        a NClob object representing the SQL NCLOB value in the specified column
        Throws:
        SQLException - if the columnLabel is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set or if a database access error occurs
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • getSQLXML

        SQLXML getSQLXML(int columnIndex)
                         throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet as a java.sql.SQLXML object in the Java programming language.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        a SQLXML object that maps an SQL XML value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • getSQLXML

        SQLXML getSQLXML(String columnLabel)
                         throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet as a java.sql.SQLXML object in the Java programming language.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        a SQLXML object that maps an SQL XML value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateSQLXML

        void updateSQLXML(int columnIndex,
                        SQLXML xmlObject)
                          throws SQLException
        Updates the designated column with a java.sql.SQLXML value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnIndex - the first column is 1, the second 2, ...
        xmlObject - the value for the column to be updated
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; this method is called on a closed result set; the java.xml.transform.Result, Writer or OutputStream has not been closed for the SQLXML object; if there is an error processing the XML value or the result set concurrency is CONCUR_READ_ONLY. The getCause method of the exception may provide a more detailed exception, for example, if the stream does not contain valid XML.
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateSQLXML

        void updateSQLXML(String columnLabel,
                        SQLXML xmlObject)
                          throws SQLException
        Updates the designated column with a java.sql.SQLXML value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        xmlObject - the column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; this method is called on a closed result set; the java.xml.transform.Result, Writer or OutputStream has not been closed for the SQLXML object; if there is an error processing the XML value or the result set concurrency is CONCUR_READ_ONLY. The getCause method of the exception may provide a more detailed exception, for example, if the stream does not contain valid XML.
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • getNString

        String getNString(int columnIndex)
                          throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language. It is intended for use when accessing NCHAR, NVARCHAR and LONGNVARCHAR columns.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • getNString

        String getNString(String columnLabel)
                          throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language. It is intended for use when accessing NCHAR, NVARCHAR and LONGNVARCHAR columns.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        the column value; if the value is SQL NULL, the value returned is null
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • getNCharacterStream

        Reader getNCharacterStream(int columnIndex)
                                   throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object. It is intended for use when accessing NCHAR, NVARCHAR and LONGNVARCHAR columns.
        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        Returns:
        a java.io.Reader object that contains the column value; if the value is SQL NULL, the value returned is null in the Java programming language.
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • getNCharacterStream

        Reader getNCharacterStream(String columnLabel)
                                   throws SQLException
        Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object. It is intended for use when accessing NCHAR, NVARCHAR and LONGNVARCHAR columns.
        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        Returns:
        a java.io.Reader object that contains the column value; if the value is SQL NULL, the value returned is null in the Java programming language
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateNCharacterStream

        void updateNCharacterStream(int columnIndex,
                                  Reader x,
                                  long length)
                                    throws SQLException
        Updates the designated column with a character stream value, which will have the specified number of bytes. The driver does the necessary conversion from Java character format to the national character set in the database. It is intended for use when updating NCHAR, NVARCHAR and LONGNVARCHAR columns.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateNCharacterStream

        void updateNCharacterStream(String columnLabel,
                                  Reader reader,
                                  long length)
                                    throws SQLException
        Updates the designated column with a character stream value, which will have the specified number of bytes. The driver does the necessary conversion from Java character format to the national character set in the database. It is intended for use when updating NCHAR, NVARCHAR and LONGNVARCHAR columns.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        reader - the java.io.Reader object containing the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateAsciiStream

        void updateAsciiStream(int columnIndex,
                             InputStream x,
                             long length)
                               throws SQLException
        Updates the designated column with an ascii stream value, which will have the specified number of bytes.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateBinaryStream

        void updateBinaryStream(int columnIndex,
                              InputStream x,
                              long length)
                                throws SQLException
        Updates the designated column with a binary stream value, which will have the specified number of bytes.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateCharacterStream

        void updateCharacterStream(int columnIndex,
                                 Reader x,
                                 long length)
                                   throws SQLException
        Updates the designated column with a character stream value, which will have the specified number of bytes.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateAsciiStream

        void updateAsciiStream(String columnLabel,
                             InputStream x,
                             long length)
                               throws SQLException
        Updates the designated column with an ascii stream value, which will have the specified number of bytes.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateBinaryStream

        void updateBinaryStream(String columnLabel,
                              InputStream x,
                              long length)
                                throws SQLException
        Updates the designated column with a binary stream value, which will have the specified number of bytes.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateCharacterStream

        void updateCharacterStream(String columnLabel,
                                 Reader reader,
                                 long length)
                                   throws SQLException
        Updates the designated column with a character stream value, which will have the specified number of bytes.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        reader - the java.io.Reader object containing the new column value
        length - the length of the stream
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateBlob

        void updateBlob(int columnIndex,
                      InputStream inputStream,
                      long length)
                        throws SQLException
        Updates the designated column using the given input stream, which will have the specified number of bytes.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        inputStream - An object that contains the data to set the parameter value to.
        length - the number of bytes in the parameter data.
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateBlob

        void updateBlob(String columnLabel,
                      InputStream inputStream,
                      long length)
                        throws SQLException
        Updates the designated column using the given input stream, which will have the specified number of bytes.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        inputStream - An object that contains the data to set the parameter value to.
        length - the number of bytes in the parameter data.
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateClob

        void updateClob(int columnIndex,
                      Reader reader,
                      long length)
                        throws SQLException
        Updates the designated column using the given Reader object, which is the given number of characters long. When a very large UNICODE value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.Reader object. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        reader - An object that contains the data to set the parameter value to.
        length - the number of characters in the parameter data.
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateClob

        void updateClob(String columnLabel,
                      Reader reader,
                      long length)
                        throws SQLException
        Updates the designated column using the given Reader object, which is the given number of characters long. When a very large UNICODE value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.Reader object. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        reader - An object that contains the data to set the parameter value to.
        length - the number of characters in the parameter data.
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateNClob

        void updateNClob(int columnIndex,
                       Reader reader,
                       long length)
                         throws SQLException
        Updates the designated column using the given Reader object, which is the given number of characters long. When a very large UNICODE value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.Reader object. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnIndex - the first column is 1, the second 2, ...
        reader - An object that contains the data to set the parameter value to.
        length - the number of characters in the parameter data.
        Throws:
        SQLException - if the columnIndex is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set, if a database access error occurs or the result set concurrency is CONCUR_READ_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateNClob

        void updateNClob(String columnLabel,
                       Reader reader,
                       long length)
                         throws SQLException
        Updates the designated column using the given Reader object, which is the given number of characters long. When a very large UNICODE value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.Reader object. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        reader - An object that contains the data to set the parameter value to.
        length - the number of characters in the parameter data.
        Throws:
        SQLException - if the columnLabel is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; if a database access error occurs or the result set concurrency is CONCUR_READ_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateNCharacterStream

        void updateNCharacterStream(int columnIndex,
                                  Reader x)
                                    throws SQLException
        Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached. The driver does the necessary conversion from Java character format to the national character set in the database. It is intended for use when updating NCHAR, NVARCHAR and LONGNVARCHAR columns.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateNCharacterStream which takes a length parameter.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateNCharacterStream

        void updateNCharacterStream(String columnLabel,
                                  Reader reader)
                                    throws SQLException
        Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached. The driver does the necessary conversion from Java character format to the national character set in the database. It is intended for use when updating NCHAR, NVARCHAR and LONGNVARCHAR columns.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateNCharacterStream which takes a length parameter.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        reader - the java.io.Reader object containing the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateAsciiStream

        void updateAsciiStream(int columnIndex,
                             InputStream x)
                               throws SQLException
        Updates the designated column with an ascii stream value. The data will be read from the stream as needed until end-of-stream is reached.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateAsciiStream which takes a length parameter.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateBinaryStream

        void updateBinaryStream(int columnIndex,
                              InputStream x)
                                throws SQLException
        Updates the designated column with a binary stream value. The data will be read from the stream as needed until end-of-stream is reached.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateBinaryStream which takes a length parameter.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateCharacterStream

        void updateCharacterStream(int columnIndex,
                                 Reader x)
                                   throws SQLException
        Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateCharacterStream which takes a length parameter.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        x - the new column value
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateAsciiStream

        void updateAsciiStream(String columnLabel,
                             InputStream x)
                               throws SQLException
        Updates the designated column with an ascii stream value. The data will be read from the stream as needed until end-of-stream is reached.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateAsciiStream which takes a length parameter.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateBinaryStream

        void updateBinaryStream(String columnLabel,
                              InputStream x)
                                throws SQLException
        Updates the designated column with a binary stream value. The data will be read from the stream as needed until end-of-stream is reached.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateBinaryStream which takes a length parameter.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        x - the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateCharacterStream

        void updateCharacterStream(String columnLabel,
                                 Reader reader)
                                   throws SQLException
        Updates the designated column with a character stream value. The data will be read from the stream as needed until end-of-stream is reached.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateCharacterStream which takes a length parameter.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        reader - the java.io.Reader object containing the new column value
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateBlob

        void updateBlob(int columnIndex,
                      InputStream inputStream)
                        throws SQLException
        Updates the designated column using the given input stream. The data will be read from the stream as needed until end-of-stream is reached.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateBlob which takes a length parameter.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        inputStream - An object that contains the data to set the parameter value to.
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateBlob

        void updateBlob(String columnLabel,
                      InputStream inputStream)
                        throws SQLException
        Updates the designated column using the given input stream. The data will be read from the stream as needed until end-of-stream is reached.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateBlob which takes a length parameter.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        inputStream - An object that contains the data to set the parameter value to.
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateClob

        void updateClob(int columnIndex,
                      Reader reader)
                        throws SQLException
        Updates the designated column using the given Reader object. The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateClob which takes a length parameter.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        reader - An object that contains the data to set the parameter value to.
        Throws:
        SQLException - if the columnIndex is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateClob

        void updateClob(String columnLabel,
                      Reader reader)
                        throws SQLException
        Updates the designated column using the given Reader object. The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateClob which takes a length parameter.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        reader - An object that contains the data to set the parameter value to.
        Throws:
        SQLException - if the columnLabel is not valid; if a database access error occurs; the result set concurrency is CONCUR_READ_ONLY or this method is called on a closed result set
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateNClob

        void updateNClob(int columnIndex,
                       Reader reader)
                         throws SQLException
        Updates the designated column using the given Reader The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateNClob which takes a length parameter.

        Parameters:
        columnIndex - the first column is 1, the second 2, ...
        reader - An object that contains the data to set the parameter value to.
        Throws:
        SQLException - if the columnIndex is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set, if a database access error occurs or the result set concurrency is CONCUR_READ_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • updateNClob

        void updateNClob(String columnLabel,
                       Reader reader)
                         throws SQLException
        Updates the designated column using the given Reader object. The data will be read from the stream as needed until end-of-stream is reached. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

        The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow or insertRow methods are called to update the database.

        Note: Consult your JDBC driver documentation to determine if it might be more efficient to use a version of updateNClob which takes a length parameter.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        reader - An object that contains the data to set the parameter value to.
        Throws:
        SQLException - if the columnLabel is not valid; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; this method is called on a closed result set; if a database access error occurs or the result set concurrency is CONCUR_READ_ONLY
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.6
      • getObject

        <T> T getObject(int columnIndex,
                      Class<T> type)
                    throws SQLException

        Retrieves the value of the designated column in the current row of this ResultSet object and will convert from the SQL type of the column to the requested Java data type, if the conversion is supported. If the conversion is not supported or null is specified for the type, a SQLException is thrown.

        At a minimum, an implementation must support the conversions defined in Appendix B, Table B-3 and conversion of appropriate user defined SQL types to a Java type which implements SQLData, or Struct. Additional conversions may be supported and are vendor defined.

        Parameters:
        columnIndex - the first column is 1, the second is 2, ...
        type - Class representing the Java data type to convert the designated column to.
        Returns:
        an instance of type holding the column value
        Throws:
        SQLException - if conversion is not supported, type is null or another error occurs. The getCause() method of the exception may provide a more detailed exception, for example, if a conversion error occurs
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.7
      • getObject

        <T> T getObject(String columnLabel,
                      Class<T> type)
                    throws SQLException

        Retrieves the value of the designated column in the current row of this ResultSet object and will convert from the SQL type of the column to the requested Java data type, if the conversion is supported. If the conversion is not supported or null is specified for the type, a SQLException is thrown.

        At a minimum, an implementation must support the conversions defined in Appendix B, Table B-3 and conversion of appropriate user defined SQL types to a Java type which implements SQLData, or Struct. Additional conversions may be supported and are vendor defined.

        Parameters:
        columnLabel - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
        type - Class representing the Java data type to convert the designated column to.
        Returns:
        an instance of type holding the column value
        Throws:
        SQLException - if conversion is not supported, type is null or another error occurs. The getCause() method of the exception may provide a more detailed exception, for example, if a conversion error occurs
        SQLFeatureNotSupportedException - if the JDBC driver does not support this method
        Since:
        1.7

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM