其它章節(jié)的翻譯參見:

          http://www.pgsqldb.org/twiki/bin/view/PgSQL/JDBC4%E8%AF%B4%E6%98%8E%E4%B9%A6

          =================================================================

          序言

          這個(gè)文檔鞏固了下面幾個(gè)規(guī)范的內(nèi)容:

          JDBC: JavaSQL類庫”

          JDBC 2.1 類庫”

          JDBC 2.0 標(biāo)準(zhǔn)擴(kuò)展類庫”

          JDBC 3.0 規(guī)范”

          文檔介紹了JDBC 4.0 類庫的新特征和一些增強(qiáng)的特征。文檔根據(jù)不同特征劃分章節(jié),這樣可以更方便了解JDBC 4.03.0的不同之處。

          讀者如果想了解JDBC類庫的詳細(xì)信息,可以參考JDBC的類庫文檔(Javadoc),該文檔可以由以下鏈接獲得:

          http://java.sun.com/products/jdbc

          ==========================================================================

          介紹

          1.1 JDBC類庫

          JDBC類庫提供了通過Java語言訪問關(guān)系數(shù)據(jù)庫的能力。Java程序通過JDBC可以執(zhí)行SQL語句,對(duì)獲取的數(shù)據(jù)進(jìn)行處理,并將變化了的數(shù)據(jù)存回?cái)?shù)據(jù)庫。在分布式異構(gòu)環(huán)境中,我們還可以通過JDBC操縱多個(gè)數(shù)據(jù)源。

          JDBC類庫基于X/Open SQL通用語言接口(CLI),ODBC也基于此。JDBC提供了一個(gè)使用方便的映射方案:從Java語言到X/Open 通用語言接口和SQL標(biāo)準(zhǔn)的抽象實(shí)體及概念的映射。

          1997年的產(chǎn)生至今,JDBC類庫已被廣泛的接受和實(shí)現(xiàn)。類庫的靈活性使得它可以有很多個(gè)具體實(shí)現(xiàn)。

          1.2 平臺(tái)

          JDBC類庫是Java平臺(tái)的一部分。4.0版分為兩個(gè)包:java.sql javax.sql。這兩個(gè)包都包含在JSE(Java桌面版)JEE(Java企業(yè)版)中。

          1.3 適合讀者

          該文檔主要面向下列產(chǎn)品的開發(fā)者:

          1. JDBC驅(qū)動(dòng)程序

          2. 基于數(shù)據(jù)庫驅(qū)動(dòng)提供三層架構(gòu)服務(wù)的應(yīng)用服務(wù)器

          3. 使用JDBC類庫來提供服務(wù)的工具

          該文檔想達(dá)到以下目的:

          1.對(duì)使用JDBC類庫的開發(fā)者的一個(gè)介紹

          2.作為開發(fā)基于JDBC的類庫的起始點(diǎn)

          ===============================================================

          目標(biāo)

          2.1 歷史

          2.2 JDBC 4.0 之目標(biāo)

          ---1.JEEJSE平臺(tái)相處融洽

          ---2.SQL:2003一致

          ---3.鞏固前述四個(gè)規(guī)范

          ---4.提供中立于廠商的通用功能

          ---5.主要只針對(duì)SQL類型的數(shù)據(jù)源

          ---6.提供高層類庫和工具的基礎(chǔ)設(shè)施

          ---7.保持簡(jiǎn)單

          ---8.加強(qiáng)可靠性、可用性和可伸縮性

          ---9.保持向后兼容性

          ---10.JDBC行集(RowSet)緊密聯(lián)系

          ---11.與連接器架構(gòu)(Connectors)兼容

          ---12.清晰描述JDBC需求

          ==================================================================

          新特性概覽

          3.1 變更概覽

          JDBC 4.0 類庫在以下領(lǐng)域注入了變化和新的元素:

          1.自動(dòng)加載java.sql.Driver

          DriverManager.getConnection方法被修改以利用JSE的服務(wù)提供者機(jī)制來自動(dòng)加載JDBC驅(qū)動(dòng)。這樣就不需要調(diào)用Class.forName方法了。

          2.類庫使用更容易

          添加了標(biāo)準(zhǔn)JDBC注釋。支持?jǐn)?shù)據(jù)集(DataSet),使Java應(yīng)用調(diào)用SQL數(shù)據(jù)源更加方便。

          3.ROWID數(shù)據(jù)類型

          添加了java.sql.RowID數(shù)據(jù)類型,使得JDBC程序可以訪問SQL ROWID

          4.支持本地字符集轉(zhuǎn)換(National Character Set Conversion)

          添加了一些JDBC類型:NCHAR, NVARCHAR, LONGVARCHAR, NCLOB。對(duì)應(yīng)的方法setNString, setNCharacterStream, setNClob也被添加到PreparedStatement接口中。

          5.增強(qiáng)了對(duì)BLOBCLOB的支持

          Connection接口添加了生產(chǎn)BLOB,CLOBNCLOB對(duì)象的方法。PreparedStatement接口添加了通過InputStream插入BLOB的方法和使用Reader插入CLOBNCLOB的方法。Blob, ClobNClob現(xiàn)在可以通過free方法釋放資源。

          6.SQL/XMLXML支持

          SQL2003引入了用SQL表達(dá)XML數(shù)據(jù)的概念。一些類庫被添加進(jìn)來以支持應(yīng)用對(duì)這些數(shù)據(jù)的訪問。

          7.包裝器(Wrapper)模式

          添加了解包JDBC實(shí)現(xiàn)的能力,使開發(fā)者可以利用在廠商實(shí)現(xiàn)中提供的非標(biāo)準(zhǔn)JDBC方法。

          8.加強(qiáng)的SQLException

          添加對(duì)JSE鏈?zhǔn)疆惓5闹С帧?/span>SQLException現(xiàn)在支持Iterable接口,所以我們可以在for-each循環(huán)里讀取SQLExceptions。新添加了兩類SQL異常:SQLTransientExceptionSQLNonTransientException。每個(gè)類都提供映射到普通SQLState類型值(譯者注:SQLState?)的子類。

          9.連接管理

          ConnectionStatement接口得到了增強(qiáng),以利于對(duì)連接狀態(tài)的跟蹤,并增加在池環(huán)境中管理Statement對(duì)象的靈活性。

          10.JDBC類庫的變化

          下面的JDBC接口被修改:

          ---10.1 Connection

          添加了下列方法:createBlob, createClob, createNClob, createQueryObject, isValid, createXML, getClientInfo, setClientInfo

          ---10.2 CallableStatement

          添加了下列方法:getRowId, setRowId, getNClob, setNString, setNCharacterStream, setNClob, getSQLXML, setSQLXML。重載了setClobsetBlob方法。

          ---10.3 DatabaseMetaData

          添加了下列方法:getRowIdLifetime, autoCommitFailureClosesAllResultSets, providesQueryObjectGenerator, getClientInfoProperties, supportsStoredFunctionsUsingCallSyntax. 重載了getSchemas方法。

          ---10.4 PreparedStatement

          添加了下列方法:setRowId, setNString, setNCharacterStream, setSQLXML, isPoolable, setPoolable, setNClob。重載了setClobsetBlob方法。

          ---10.5 ResultSet

          添加了下列方法:getHoldability, getRowId, updateRowID, getNClob, isClosed, updateNString, getSQLXML, updateSQLXML, updateNClob。

          ---10.6 Statement

          添加了isClosedgetResultSetHoldability方法。

          ---10.7 DataSource

          添加了createQueryObject方法。

          ---10.8 PooledConnection

          添加了addStatementEventListenerremoveStatementEventListener方法。

          ====================================================================

          概覽

          JDBC類庫使得Java程序可以訪問多個(gè)數(shù)據(jù)源,但在大多數(shù)情況下,這個(gè)數(shù)據(jù)源是關(guān)系數(shù)據(jù)庫,并且通過SQL訪問。然而,實(shí)現(xiàn)JDBC技術(shù)的驅(qū)動(dòng)也可以基于其它的數(shù)據(jù)源,包括遺留文件系統(tǒng)和面向?qū)ο蟮南到y(tǒng)。

          JDBC類庫的主要目的就是提供應(yīng)用程序訪問多種數(shù)據(jù)源的標(biāo)準(zhǔn)接口。

          這一章介紹JDBC類庫的一些關(guān)鍵概念,并描述JDBC應(yīng)用的兩個(gè)通用環(huán)境及其中的功能實(shí)現(xiàn)。

          4.1 創(chuàng)建連接

          JDBC類庫中的Connection接口代表了底層數(shù)據(jù)源的一個(gè)連接。

          在典型場(chǎng)景中,JDBC應(yīng)用程序使用兩種機(jī)制連接到數(shù)據(jù)源:

          1.DriverManager --- 這個(gè)類在JDBC 1.0中引入,它使用硬編碼的URL來加載驅(qū)動(dòng)。

          2.DataSource --- 這個(gè)接口在JDBC 2.0可選包中引入。它優(yōu)于DriverManager方式,因?yàn)樗[藏了數(shù)據(jù)源的詳細(xì)信息。我們通過設(shè)置DataSource的屬性來標(biāo)明它代表的數(shù)據(jù)源。當(dāng)getConnection方法被調(diào)用時(shí),DataSource對(duì)象會(huì)返回一個(gè)對(duì)應(yīng)的連接。我們可以通過改變DataSource的屬性來使它指向另一個(gè)數(shù)據(jù)源,而不是改變程序代碼。而且,如果DataSource的實(shí)現(xiàn)改變了,使用它的應(yīng)用程序代碼不需要改變。

          JDBC類庫也定義了兩個(gè)DataSource的擴(kuò)展,用來支持企業(yè)級(jí)應(yīng)用,如下:

          1.ConnectionPoolDataSource --- 支持物理連接的緩存和重用,這樣可以提高應(yīng)用的性能和可伸縮性。

          2.XADataSource --- 提供可以使用在分布式事務(wù)中的連接。



          版權(quán)所有 羅明
          posted on 2005-09-28 01:18 羅明 閱讀(139) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
           
          主站蜘蛛池模板: 石屏县| 九江市| 静海县| 蒙自县| 北流市| 渝中区| 崇礼县| 汉寿县| 肇源县| 陆丰市| 乃东县| 民勤县| 河津市| 聊城市| 平武县| 镇雄县| 新巴尔虎左旗| 西丰县| 三门县| 新郑市| 海口市| 安化县| 长岛县| 二连浩特市| 仁化县| 岳阳市| 盘山县| 六枝特区| 白朗县| 南阳市| 包头市| 江安县| 抚远县| 那坡县| 家居| 江北区| 台南县| 依安县| 双流县| 定日县| 日喀则市|