可保持的ResultSet

2021-08-29 14:57:52 字數 1084 閱讀 4877

可保持的resultset正常情況下如果使用statement執行完乙個查詢,又去執行另乙個查詢時這時候第乙個查詢的結果集就會被關閉,也就是說,所有的statement的查詢對應的結果集是乙個,如果呼叫connection的commit()方法也會關閉結果集。可保持性就是指當resultset的結果被提交時,是被關閉還是不被關閉。jdbc2.0和1.0提供的都是提交後resultset就會被關閉。不過在jdbc3.0中,我們可以設定的物件的創resultset是否關閉。要完成這樣的resultset建,要使用的statement的建立要具有三個引數,這個statement的建立方式也就是,我所說的statement的第三種建立方式。如下: statement st=createstatement(int resultsetscrollable,int resultsetupdateable,int resultsetsetholdability)resultset rs = st.excutequery(sqlstr);前兩個引數和兩個引數的createstatement方法中的引數是完全相同的,這裡只介紹第三個引數:       resultsetholdability表示在結果集提交後結果集是否開啟,取值有兩個:       resultset.hold_cursors_over_commit:表示修改提交時,不關閉資料庫。     resultset.close_cursors_at_commit:表示修改提交時resultset關閉。不過這種功能只是在jdbc3.0的驅動下才能成立。

但是如果採用資料持久層和業務邏輯分開來來,在dao層生成sta和rs,那我們現在要考慮的問題是什麼時候關閉sta rs 和con的問題 。dao往bean傳遞的是rs 可以在使用完成之後關閉 con可以在bean最後的finally{}中進行關閉  。那麼sta在什麼時候關閉?

正常的關閉順序如下:

if (rs != null)    rs.close(); 

if (sta != null)    sta.close();  

if (con != null)    con.close();

疑問:是否設定了 resultset.hold_cursors_over_commit後執行rs.close()後,還可以訪問rs中的方法和資料????

可滾動的ResultSet型別 實現分頁

這個型別支援前後滾動取得紀錄next previous 回到第一行first 同時還支援要取的 resultset中的第幾行 absolute int n 以及移動到相對當前行的第幾行relative int n 要實 現這樣的resultset在建立statement時用如下的方法。stateme...

常吃「四辣」可保持健康

常吃 四辣 可保持健康 四辣 指的是蔥 姜 蒜 辣椒,雖然都是 辣 但 靶子不同 蔥辣嘴 蒜辣心 姜辣胃 辣椒辣兩頭。這 幾樣是老百姓家裡常備的調味菜,好吃 不貴,而且有藥用功能。聽專家講過sars期間山東發病少,為什麼?因為山東人喜歡吃大蔥。大蔥 是土裡生長的 天然抗菌藥 啊。蔥的妙用 蔥可以加快...

ResultSet 物件的指標

1.預設的 resultset 物件不可更新,僅有乙個向前移動的指標。因此,只能迭代它一次,並且只能按從第一行到最後一行的順序進行。可以生成可滾動和 或可更新的 resultset 物件。以下 片段 其中 con 為有效的 connection 物件 演示了如何生成可滾動且不受其他更新影響的 可更新...