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