第二章 目標(biāo)
JDBC應(yīng)用程序接口是成熟的技術(shù),它早在1997年1月就被提出。在它最初發(fā)行的時候,JDBC應(yīng)用程序接口注重于提供一個基本的調(diào)用級的到SQL數(shù)據(jù)庫的接口。而JDBC2.1規(guī)范和2.0可選擇包規(guī)范則擴(kuò)展了JDBC的范圍。這兩個規(guī)范包括了對更多高級應(yīng)用程序的支持和使用JDBC應(yīng)用程序接口的應(yīng)用程序服務(wù)器為了運行于它們之上的應(yīng)用程序的性能所要求的新特性的支持。
JDBC3.0規(guī)范的總體目標(biāo)是補上那些在很少方面的功能缺失。以下的清單列出了JDBC以及JDBC3.0所特有的目標(biāo)和設(shè)計原理:
1、 適合J2EE和J2SE平臺
JDBC應(yīng)用程序接口是Java平臺的組成技術(shù)。因此,JDBC3.0應(yīng)該和Java2企業(yè)版和Java2標(biāo)準(zhǔn)版的總體方向保持一致。
2、 與SQL99保持一致
JDBC應(yīng)用程序接口提供了從Java編寫的應(yīng)用程序到標(biāo)準(zhǔn)SQL的編程訪問。在JDBC2.0開發(fā)的過程中,SQL99規(guī)范還處在一種變化不定的情況下。現(xiàn)在SQL99規(guī)范是一個公開的標(biāo)準(zhǔn),它包括了被數(shù)據(jù)庫管理系統(tǒng)廠商廣泛支持的以及那些被很少廠商支持的特性。JDBC3.0的目標(biāo)就是實現(xiàn)SQL99中那些極可能在將來五年里會被廣泛支持的特性的子集。
3、 合并之前版本的規(guī)范
此規(guī)范合并了之前三版JDBC規(guī)范以提供一份獨立的關(guān)于JDBC應(yīng)用程序接口的規(guī)范。
4、 提供廠商中立的對普通特性的訪問
JDBC應(yīng)用程序接口努力實現(xiàn)對被不同廠商普遍支持的特征的高性能的訪問。目標(biāo)是在一定程度上提供本地應(yīng)用程序能完成的對特性的訪問。因此,JDBC應(yīng)用程序接口必須足夠全面和靈活以顧及大量的實現(xiàn)方式。
5、 繼續(xù)保持對SQL的注重
JDBC應(yīng)用程序接口一直注重于從Java編程語言到關(guān)系型數(shù)據(jù)的訪問。JDBC3.0將繼續(xù)注重于這一點。JDBC3.0不排除和其它技術(shù)交互,包括XML、CORBA和非關(guān)系型數(shù)據(jù),但是最主要的目標(biāo)將仍然是和關(guān)系型數(shù)據(jù)和SQL交互。
6、 為工具和更高層的應(yīng)用程序接口提供基礎(chǔ)
JDBC應(yīng)用程序接口提供標(biāo)準(zhǔn)的應(yīng)用程序接口來訪問廣泛的數(shù)據(jù)源或者保留系統(tǒng)(Legacy Systems)。通過JDBC應(yīng)用程序接口的抽象,實現(xiàn)方式的不同之處也變得透明了。這使得JDBC對于那些想生產(chǎn)輕便工具和應(yīng)用程序的廠商來說,是一個不可多得的目標(biāo)平臺。
因為JDBC是一個從Java編程語言到SQL的調(diào)用級的接口,所以,JDBC應(yīng)用程序接口也適合作為那些像EJB2.0容器管理持久和SQLJ(注:SQLJ是一個與Java編程語言緊密集成的嵌入式SQL版本)這些高級程序的基礎(chǔ)。
7、 保持它的簡單
JDBC應(yīng)用程序接口被設(shè)計為簡單易懂的接口,但是通過它能夠編寫更復(fù)雜的實體。這一目標(biāo)是通過定義許多簡潔,擁有單一功能的方法來代替通過標(biāo)志參數(shù)控制的少量的復(fù)雜而擁有多功能的方法來實現(xiàn)的。
8、 增強可靠性、實用性和靈活性
可靠性、實用性和靈活性是J2EE和J2SE平臺的主題,也是Java平臺未來的方向。JDBC3.0應(yīng)用程序接口通過增強對若干領(lǐng)域的支持體現(xiàn)了這些主題,這些領(lǐng)域包括資源管理,通過邏輯連接重用預(yù)處理語句(prepared statements)以及錯誤處理。
9、 保留對現(xiàn)有應(yīng)用程序和驅(qū)動程序的向后兼容性
現(xiàn)有的支持JDBC技術(shù)的驅(qū)動和使用這些驅(qū)動的應(yīng)用程序在支持JDBC3.0的Java虛擬機上必須能夠繼續(xù)工作。對于那些只使用了先前版本的JDBC應(yīng)用程序接口的特性,但是沒有使用JDBC2.0反對的特性的應(yīng)用程序,將不需要任何改變而正常運行。現(xiàn)有的應(yīng)用程序移植到JDBC3.0技術(shù)上是件簡單的事情。
10、允許對連接器的向前兼容
連接器的體系結(jié)構(gòu)定義了一個標(biāo)準(zhǔn)的方法來打包和部署資源適配器。這使得J2EE容器可以通過外部資源集成連接器的連接、事務(wù)和安全管理。
JDBC3.0應(yīng)用程序接口提供了從JDBC驅(qū)動程序移植到連接器體系的途徑。這使得那些使用JDBC技術(shù)的產(chǎn)品的廠商更多地轉(zhuǎn)移到使用連接器應(yīng)用程序接口(Connector API)成為可能。希望這些廠商會在他們現(xiàn)有的數(shù)據(jù)源工具上寫上“資源管理器封裝”,這樣這些工具就能夠在連接器框架中被重用。
11、 清楚地規(guī)定需求
JDBC規(guī)范的需求應(yīng)該是明確的和容易識別的。JDBC3.0規(guī)范和Javadoc文檔規(guī)定了哪些特性是必需 的,而哪些特性是可選的。