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

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

在Oracle JDBC訪問中加入Spring特性

2019-11-18 15:27:50
字體:
來源:轉載
供稿:網友

字符編碼轉換:$utf8 = iconv('gb2312','utf-8',$str);

獲得字符的編碼形式:mb_detect_encoding;

JDBC 是一個常用于訪問關系數據庫的標準數據訪問協議。JDBC 的一個顯著優勢是其標準化的 API,為基于 java 的數據訪問應用程序的可移植性奠定了基礎。JDBC 是標準 Java (J2SE) 和企業 Java (J2EE) 中一個不可或缺的部分,在 Java 早期階段就已推出。

JDBC 有許多優勢,使得它能夠在許多 J2SE 和 J2EE 應用程序中發揮重要作用。但它也有一些不足之處,使得我們不能稱心如意的使用它們。這些麻煩(有時候讓人厭惡)的 JDBC 特性催生出了許多公開的 JDBC 抽象框架(例如 SQLExecutor 和 Apache Jakarta Commons DBUtil)以及更多得多的自主開發的 JDBC 應用程序框架。SPRing 框架的 JDBC 抽象就是一個公開的 JDBC 抽象框架。

Spring 框架是一個在 Apache 許可下發布的 Java/J2EE 應用程序框架,它支持 J2EE 應用程序中的多個層次。Spring 框架的一個突出特性是支持更易于維護和更強健的 JDBC 數據訪問。在本文中,您將了解到 Spring 框架 — 它可以和 Oracle TopLink 對象/關系映射工具結合使用 — 如何大大減少與編寫 JDBC 代碼相關的煩瑣工作和風險。使用 Spring 框架,開發人員編寫的 Oracle 數據庫訪問 JDBC 代碼可以更為簡潔、更不易出錯以及更加靈活。

正確關閉數據庫資源

JDBC 代碼中的一個常見錯誤是沒有正確關閉連接。這將導致數據庫資源的不合理分配。類似地,關閉結果集和語句也是有用并通常推薦的操作。為了確保即使在異常的運行條件下也能正確執行這些關閉操作,一般將采用代碼清單 1 中 finally 子句中的代碼。

代碼清單 17 演示了本文中第一次在基于 Spring 的代碼中使用 PreparedStatement,并顯示了對 SQLException 的另一種引用。正如代碼清單 16 的情況一樣,SQLException 主要用于引用 Spring 框架的 JdbcTemplate 類,后者將處理它并將任何異常作為非強制 Spring 異常提供。

代碼清單 16 和 17 演示了 Spring 的 RowCallbackHandler 和 PreparedStatementSetter 回調接口的用法。在這些代碼清單中使用匿名內部類實現了這些接口。雖然與前面的代碼清單中顯示的 JdbcTemplate 的更簡單的用法相比,開發人員編寫的內部類必須知道關于 ResultSet 和 PreparedStatement 以及它們的各個 API 的更多信息,但您仍然無需關心 SQLException 的處理;JdbcTemplate 將執行異常處理。

前面的基于 Spring 的代碼清單(例如代碼清單 3 和 6 中使用的 JdbcTemplate)甚至沒有提到 ResultSet、Statement、PreparedStatement 或 SQLException。這些高度抽象的方法對于不想關心 JDBC 的具體用法的開發人員非凡有用。不過,這些極其方便的方法沒有代碼清單 16 和 17 所演示的內部類方法靈活。代碼清單 16 和 17 中顯示的更靈活的方法可以在需要時使用(只需稍微了解基本的 JDBC API)。在所有情況下,異常處理都由 Spring 異常層次結構來一致地執行,您不需要關心 SQLException。

其他好處

代碼清單 1

try{// JDBC Connection/Statement/Result Set}catch (SQLException sqlEx){// Handle the exception}finally{try{ // Closing connection *should* close statement and result setif (stmt != null) stmt.close();if (conn != null) conn.close(); }catch (SQLException sqlEx) {System.err.println("SQLException NOT handled"); }}

finally 子句通常被用來確保關閉數據庫連接和語句。但即使當開發人員的確用這種方法確保成功關閉連接,代碼也是冗長、膨脹和重復的。Spring 框架對連接處理和相關資源治理進行了抽象,開發人員不用直接處理上述事項,從而實現更一致的資源關閉并編寫更易于理解的代碼。

第一個 Spring 代碼示例

代碼清單 2 中的 JDBC 代碼可以用來查詢(大家都熟悉)的 scott/tiger 模式中的員工的酬金。正如之前所討論的那樣,在本示例中除了實際查詢數據庫的 SQL 代碼之外,還必需要有大量的“例行”代碼。

代碼清單 2



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 教育| 镇宁| 时尚| 乡宁县| 巴林左旗| 都匀市| 武乡县| 中方县| 瑞金市| 隆林| 浦东新区| 祁东县| 崇仁县| 高州市| 牙克石市| 宜兴市| 蒙山县| 石城县| 荆州市| 上虞市| 黔南| 来宾市| 潢川县| 马山县| 石家庄市| 布拖县| 综艺| 京山县| 田阳县| 灵寿县| 苏尼特左旗| 苍梧县| 华蓥市| 西贡区| 会泽县| 临夏县| 四会市| 奎屯市| 珠海市| 聂荣县| 南靖县|