java SE 6包含了對Java數據庫互連(JDBC)API的一些增強特性。這些增強特性的版本將定為JDBC version 4.0。JDBC新特性的目的是提供更簡單的設計和更好的開發體驗。本文將概述JDBC 4.0的增強特性和為企業級Java開發人員帶來的好處。我們將通過一個用Apache Derby作為后臺數據庫的貸款處理應用范例來探究JDBC的新特性。
Java SE 6包含了對Java數據庫互連(JDBC)API的一些增強特性。這些增強特性的版本將定為JDBC version 4.0。JDBC新特性的目的是提供更簡單的設計和更好的開發體驗。本文將概述JDBC 4.0的增強特性和為企業級Java開發人員帶來的好處。我們將通過一個用Apache Derby作為后臺數據庫的貸款處理應用范例來探究JDBC的新特性。
版權聲明:任何獲得Matrix授權的網站,轉載時請務必保留以下作者信息和鏈接
作者:feichangcai
原文:http://www.matrix.org.cn/resource/article/2006-11-19/Mustang+JDBC_c8c66f03-77c2-11db-bdce-bdc029e475a1.Html
要害字:Mustang;JDBC
Java SE 6.0
Java SE 6.0版以兼容性、穩定性和品質作為設計目標。本版本中有不少值得關注的增強特性,非凡是JMX、web services、腳本語言支持(采用Rhino腳本引擎JSR 223把javascript技術與Java源碼進行集成)、數據庫連接、支持annotations和安全部分。另外,在JDBC API中還有不少新的特性,包括RowId支持和新增的SQLException子類。
JDBC 4.0的特性
得益于Mustang中的Java SE 服務提供商機制,Java開發人員再也不必用類似Class.forName()的代碼注冊JDBC驅動來明確加載JDBC。當調用DriverManager.getConnection()方法時,DriverManager類將自動設置合適的驅動程序。該特性向后兼容,因此無需對現有的JDBC代碼作任何改動。
通過對Java應用程序訪問數據庫代碼的簡化,使得JDBC 4.0有更好的開發體驗。JDBC 4.0同時也提供了工具類來改進數據源和連接對象的治理,也改進了JDBC驅動加載和卸載機制。
有了JDBC 4.0傳承自Java SE 5.0 (Tiger)版對元數據的支持功能,Java開發人員可用Annotations明確指明SQL查詢。基于標注的SQL查詢答應我們通過在Java代碼中使用Annotation要害字正確指明SQL查詢字符串。這樣,我們不必查看JDBC代碼和他所調用的數據庫兩份不同的文件。例如,用一個名為getActiveLoans()方法在貸款處理數據庫中獲取一個活躍貸款清單,你可以添加@Query(sql="SELECT * FROM LoanapplicationDetails WHERE LoanStatus = 'A'")標注來修飾該方法。
并且,最終版的Java SE 6開發包(JDK 6)以及其相應的執行期環境(JRE 6)會捆綁一個基于Apache Derby的數據庫。這使得Java開發人員無需下載、安裝和配置一款單獨的數據庫產品就能探究JDBC的新特性。
JDBC 4.0中增加的主要特性包括:
1. JDBC驅動類的自動加載
2. 連接治理的增強
3. 對RowId SQL類型的支持
4. SQL的DataSet實現使用了Annotations
5. SQL異常處理的增強
6. 對SQL xml的支持
另外,對BLOB/CLOB 的改進支持以及對國際字符集的支持也是JDBC 4.0的特性。這些特性將在隨后章節中具體討論。
JDBC驅動自動加載
在JDBC 4.0中,我們不必再使用Class.forName()方法明確加載JDBC驅動。當調用getConnection方法時,DriverManager會嘗試從初始化時已經加載的JDBC驅動程序庫中選擇合適的驅動,以及他在當前應用的同一個類加載器中明確加載使用過的驅動。
DriverManager中的getConnection和getDrivers方法已作了改進,以支持Java SE 服務提供商機制(SPM)。根據SPM,所謂服務就是一組廣為人知的接口和抽象類的集合,而服務提供商就是對某一服務的特定實現。SPM還指明了服務提供商的配置文件存放于META-INF/services目錄下。JDBC 4.0的驅動程序庫必須包含META-INF/services/java.sql.Driver文件。該文件包含對java.sql.Driver 實現的JDBC驅動文件名。例如,通過JDBC驅動連接Apache Derby數據庫,META-INF/services/java.sql.Driver將含有以下路徑:
org.apache.derby.jdbc.EmbeddedDriver
我們再來快速地看一下如何使用這一新特性加載一個JDBC驅動治理。以下顯示的是我們用以加載JDBC驅動的典型范例代碼。這里我們假設連接的是Apache Derby數據庫,因為該數據庫將在本文隨后的范例應用中用到:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection conn =
DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassWord);新聞熱點
疑難解答