可保持的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 物件 演示了如何生成可滾動且不受其他更新影響的 可更新...