一、ResultSet之滾動結果集 ResultSet表示結果集,它是一個二維的表格。ResultSet內部維護一個行游標(游標),ResultSet提供了一系列的方法來移動游標: void beforeFirst():把游標放到第一行的前面,這也是游標預設的位置; void afterLast() ...
一、ResultSet之滾動結果集
ResultSet表示結果集,它是一個二維的表格。ResultSet內部維護一個行游標(游標),ResultSet提供了一系列的方法來移動游標:
- void beforeFirst():把游標放到第一行的前面,這也是游標預設的位置;
- void afterLast():把游標放到最後一行的後面;
- boolean first(): 把游標放到第一行的位置上,返回值表示調控游標是否成功;
- boolean last():把游標放到最後一行的位置上;
- boolean isBeforeFirst():當前游標位置是否在第一行前面
- boolean isAfterLast():當前游標位置是否在最後一行後面
- boolean isFirst():當前游標位置是否在第一行上
- boolean isLast():當前游標位置是否在最後一行上
- boolean previous(): 把游標向上挪一行
- boolean next(): 把游標向下挪一行
- boolean relative(int row):相對位移,當row為正數時,表示向下移動row行,為負數時表示向上移動row行。
- boolean absolute(int row):絕對位移,把游標移動到指定的行上;
- int getRow():返回當前游標所有行。
上面方法分為兩類,一類用來判斷游標位置的,另一類是用來移動游標的。如果結果集是不可滾動的,那麼只能使用next()方法來移動游標,而beforeFirst()、afterLast()、first()、last()、previous()、relative()方法都不能使用。
獲取結果集元數據:
- 得到元數據:rs.getMetaData(),返回值為ResultSetMetaData;
- 獲取結果集列數:int getColumnCount();
- 獲取指定列的列名:String getColumnName(int collindex);
結果集特性:
- 是否可滾動
- 是否敏感
- 是否可更新
Statement createStatement();//預設不滾動、不敏感、不可更新。
結果集是否支持滾動,要從Conntection類的createStatement()方法說起。也就是說創建的Statement決定了使用Statement創建的ResultSet是否支持滾動。
Statement createStatement(int resultSetType,int resultSetConcurrency)
- 第一個參數的可選值:
- ResultSet.TYPE_FORWARD_ONLY: 不滾動結果集;(預設值)
- ResultSet.TYPE_SCROLL INSENSITIVE: 滾動結果集,但結果集數據不會再跟隨資料庫而變化;
- ResultSet.TYPE_SCROLL_SENSITIVE: 滾動結果集,但結果集數據不會再跟隨資料庫而變化;(無數據驅動支持)
- 第二個參數的可選值:
- CONCUR_READ_ONLY:結果集是只讀的,不能通過修改結果集而反向影響資料庫;
- CONCUR_UPDATABLE:結果集是可更新的,對結果集的更新可以反向影響資料庫。
二、ResultSet之獲取列數據
可以通過next()方法使ResultSet的游標向下移動,當游標移動到你需要的行時,就需要獲取該行的數據,ResultSet提供了一系列獲取列數據的方法:
- String getString (int columnIndex):獲取指定列的String類型數據
- int getInt (int columnIndex):獲取指定列的int類型數據
- double getDouble (int columnIndex):獲取指定列的double類型數據
- boolean getBoolean (int columnIndex):獲取指定列的boolean類型數據
- Object getObject (int columnIndex):獲取指定列的Object類型的數據
- String getString (int columnName):獲取名為columnName的列的String類型數據
- int getInt (int columnName):獲取名為columnName的列的int類型數據
- double getDouble (int columnName):獲取名為columnName的列的double類型數據
- boolean getBoolean (int columnName):獲取名為columnName的列的boolean類型數據
- Object getObject (int columnName):獲取名為columnName的列的Object類型的數據