3/03/2011

JDBC關與不關問題

Jdbc programming 幾乎是寫Java程式存取資料庫一定會用到東西, 當利用Jdbc執行Sql時會有下面的寫法。

[code lang="java"] try{ #run sql ... }finally{ if(rs!=null) rs.close(); if(stmt!=null) stmt.close(); if(conn!=null) conn.close(); } [/code]

自行拿connection時需不需做囉唆事情 ?

當使用 connection pool , 觸發 conn.close() 時connection 將返回 pool 中, stmt與rs將不會自動被回收,易造成 Memory leaks。

因此,最好的方法還是明確將 rs 與 stmt 關掉,避免不必要維護成本。當然除了少數情況還需自行拿connection 來處理資料庫存取外,大部份jdbc都已經被封裝至底層(springframework jdbc) 不易發生此問題。

No comments:

Post a Comment