默認的ResultSet只能向下遍歷(next());
可以將其設置成滾動的,既可以向上遍歷(previous()),也可以定位到一個指定的物理行號(absolute(int index))
獲得滾動結果集
//默認結果集,只能向下執行,并且只能迭代一次
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
//創建滾動結果集,多兩個參數設置
Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
//con.createStatement(int ResultSet, int ResultSetConcurency)
con.createStatement(int ResultSet, int ResultSetConcurency)
- 第一個參數 ResultSet 結果集類型
- TYPE_FORWARD_ONLY 默認的,光標只能遷移
- TYPE_SCROLL_INSENSITIVE 可以滾動,不受底層數據的影響
- TYPE_SCROLL_SENSITIVE 可以滾動,受底層數據影響
- 第二個參數 ResultSetConcurency 并發類型
- CONCUR_READ_ONLY 指示不可更新的ResultSet對象的并發模式
- CONCUR_UPDATABLE 指示可以更新的ResultSet對象的并發模式
上述參數基本有三種搭配模式
- 默認的,不可滾動不可更改
- TYPE_FORWARD_ONLY
- CONCUR_READ_ONLY
- 可滾動不可更改
- TYPE_SCROLL_INSENSITIVE
- CONCUR_READ_ONLY
- 可滾動可更改
- TYPE_SCROLL_INSENSITIVE
- CONCUR_UPDATABLE
ResultSet可以更改數據庫
//第一種通過 Statement執行sql語句執行
st.executeQuery(sql);
//第二種通過ResultSet執行,rs需要指向那一行
rs.updateString("","");//其他更改方式查看JDK文檔
rs.updateRow();