国产探花免费观看_亚洲丰满少妇自慰呻吟_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 解決方案

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐城市| 赣榆县| 来宾市| 三原县| 吉木萨尔县| 临城县| 汝州市| 天祝| 漳浦县| 游戏| 岳西县| 沭阳县| 山东省| 孟州市| 微山县| 桐乡市| 双江| 新蔡县| 犍为县| 依安县| 子洲县| 通城县| 石渠县| 普陀区| 德庆县| 普兰县| 红桥区| 海伦市| 东至县| 邮箱| 湘潭县| 铁岭市| 当涂县| 科尔| 营山县| 赣榆县| 乌兰浩特市| 绩溪县| 黄浦区| 土默特右旗| 九龙县|