閱覽JDBC的聯機幫助文檔時,我們往往會產生畏難情緒。特別是DatabaseMetaData接口——與Java中看到的大多數接口相反,它的體積顯得非常龐大——存在著數量眾多的方法,比如dataDefinitionCausesTransactionCommit(),getMaxColumnNameLength(),getMaxStatementLength(),storesMixedCaseQuotedIdentifiers(),supportsANSI92IntermediateSQL(),supportsLimitedOuterJoins()等等。它們有這兒有什麼意義嗎?
正如早先指出的那樣,數據庫起初一直處於一種混亂狀態。這主要是由於各種數據庫應用提出的要求造成的,所以數據庫工具顯得非常“強大”——換言之,“龐大”。只是近幾年才湧現出了SQL的通用語言(常用的還有其他許多數據庫語言)。但即便象SQL這樣的“標准”,也存在無數的變種,所以JDBC必須提供一個巨大的DatabaseMetaData接口,使我們的代碼能真正利用當前要連接的一種“標准”SQL數據庫的能力。簡言之,我們可編寫出簡單的、能移植的SQL。但如果想優化代碼的執行速度,那麼為了適應不同數據庫類型的特點,我們的編寫代碼的麻煩就大了。
當然,這並不是Java的缺陷。數據庫產品之間的差異是我們和JDBC都要面對的一個現實。但是,如果能編寫通用的查詢,而不必太關心性能,那麼事情就要簡單得多。即使必須對性能作一番調整,只要知道最終面向的平台,也不必針對每一種情況都編寫不同的優化代碼。
在Sun發布的Java 1.1產品中,配套提供了一系列電子文檔,其中有對JDBC更全面的介紹。此外,在由Hamilton Cattel和Fisher編著、Addison-Wesley於1997年出版的《JDBC Database Access with Java》中,也提供了有關這一主題的許多有用資料。同時,書店裡也經常出現一些有關JDBC的新書。