国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

關閉和釋放 JDBC 資源

2019-11-18 12:40:29
字體:
來源:轉載
供稿:網友

  關閉和釋放 JDBC 資源
  
  為了確保 JDBC 資源不在出現異常或錯誤等情況下被不正常關閉,我們應該在使用完 JDBC 資源之后關閉且釋放它們。JDBC 連接池提供了 JDBC 連接定義和數目有限的連接,假如數量不夠,就需要長時間的等待。不正常關閉 JDBC 連接會導致等待回收無效的 JDBC 連接。只有正常的關閉和釋放 JDBC 連接,JDBC 資源才可以被快速的重用使性能得到改善。
  
  建議
  
  失敗的關閉和釋放 JDBC 連接可能導致其它用戶的連接經歷長時間的等待。雖然超時的JDBC 連接會被 WebSphere application Server 退回而被回收 ,但必須等待這種情形發生。
  
  使用完 JDBC 資源后關閉它們,還可以顯式關閉 JDBC ResultSets。假如沒有顯式關閉語句,則在完成了相關語句之后會釋放 ResultsSets。
  
  所以請確保您構建的代碼在所有情況下,甚至在異常和錯誤條件下,都能關閉和釋放 JDBC 資源。以下代碼顯示了 JDBC 資源的獲得和使用都封裝在“Try-Catch-Finally”結構中。其中,在 finally 子句中處理 JDBC 資源的關閉,使所有情況下關閉都將發生。
  
  關閉 JDBC Connection 和 PReparedStatement 的正確方式
  
  Connection conn = null;
  ResultSet rs = null;
  PreparedStatement pss = null;
  try
  {
  conn = dataSource.getConnection(USERID,PASSWord);
  pss = conn.prepareStatement("SELECT SAVESERIALZEDDATA
  FROM session.PINGSESSION3DATA WHERE SESSIONKEY = ?");
  pss.setString(1,sessionKey);
  rs = pss.executeQuery();
  pss.close();
  conn.close();
  }
  catch (Throwable t)
  {
  // Insert Appropriate Error Handling Here
  }
  finally
  {
  // The finally clause is always executed - even in error
  // conditions PreparedStatements and Connections will always be closed
  try
  {
  if (pss != null)
  pss.close();
  }
  catch(Exception e) {}
  
  try
  {
  if (conn != null)
  conn.close();
  }
  catch (Exception e){}
  }
  }
  
  替代方法
  
  以下代碼顯示了關閉 JDBC 資源的錯誤方法。它們將在異常情況中失去正常關閉方式。這里假如拋出異常,應用程序將無法關閉 JDBC 連接。
  
  Connection conn = null;
  ResultSet rs = null;
  PreparedStatement pss = null;
  try
  {
  conn = dataSource.getConnection(USERID,PASSWORD);
  pss = conn.prepareStatement("SELECT SAVESERIALZEDDATA
  FROM SESSION.PINGSESSION3DATA WHERE SESSIONKEY = ?");
  pss.setString(1,sessionKey);
  rs = pss.executeQuery();
  pss.close();
  conn.close();
  }
  catch (Throwable t)
  {
  // If i reach this spot, I blew a JDBC Connection.
  }

上一篇:JDO 是什么

下一篇:JDBC 解決方案

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上虞市| 西藏| 昂仁县| 鄂托克旗| 长汀县| 无为县| 长子县| 彰化县| 彭山县| 应城市| 方山县| 平远县| 桐梓县| 洛隆县| 石景山区| 兴化市| 巩留县| 井研县| 三亚市| 安化县| 灵武市| 沙坪坝区| 谷城县| 巴塘县| 盈江县| 尼勒克县| 苏尼特左旗| 白沙| 仁怀市| 邹城市| 九寨沟县| 米泉市| 中江县| 山东| 南宫市| 杭锦后旗| 新巴尔虎右旗| 双流县| 胶州市| 汉沽区| 鄯善县|