JDBC是java數據庫連接性API,它允許用戶從Java應用程序中訪問任何表格化數據源。JDBC除了提供到更寬范圍的SQL數據庫的連接外,也允許用戶訪問其他的表格數據源,如電子表格。
JDBC定義了一個底層的API,用來支持獨立于任何特定SQL實現的基本SQL功能。這意味著重要的是執行原SQL語句,然后檢索他們的結果。
JDBC 2.0 API包括兩個包:java.sql和javax.sql。他們合在一起,包含了用Java開發數據庫應用程序所需的類。作為Java2平臺,JDBC在任何運行Java的平臺上都是可用的。
JDBC3.0規范,引入了幾個特性,包括支持各種數據類型,附加的元數據能力,并增加了大量的接口。
JDBC主要特點是與任何關系型數據庫協同工作的方式完全相同。沒有必要寫一個程序訪問oracle,寫另一個程序訪問mysql等等。JDBC在許多不同數據庫連接模塊的頂端提供了統一的接口。使用JDBC寫的程序可以用來創建與任何關系型數據庫的SQL接口。
JDBC的三種主要功能:
1、建立與數據庫或其他表列數據源的連接
2、向數據源發送SQL命令
3、處理結果
訪問數據源的主要步驟:
1、 裝載一個JDBC驅動程序
2、 獲得與數據庫的連接
3、 創建一條語句
4、 執行SQL查詢
5、 從ResultSet中檢索數據
ResultSet提供了在結果中循環所必須的方法,和使用適合于自己類型的方法獲得各自數據庫字段。
JDBC API在SQL數據類型和Java/JDBC數據類型之間定義了標準的映射。
JDBC API可以直接從應用程序中使用,或者作為多層服務器應用程序一部分使用。
SQL的一致性:
盡管SQL是訪問關系型數據庫的標準語言,但是不同的數據庫系統支持不同的SQL語法這些區別從次要細節--SQL語句是否需要結束符(;),到大的變化--例如缺乏對存儲過程或加入到數據庫系統中某些類型的支持。
另一個重要區別是許多數據庫系統提供大量的沒有包含高級功能的SQL標準。這些高級特性在不同數據庫系統中有不同的實現方式。JDBC API設計的一個非常重要的需求是它必須支持SQL,因為它不只限于標準的定義的那樣。
JDBC API處理該問題的一種方式是允許將SQL String傳送到底層DBMS驅動程序。結果是許多數據庫管理系統對一些命令返回錯誤響應。
JDBC API支持將任意SQL String通過回避機制傳送到數據庫管理系統。例如,對于數據和存儲過程調用有許多回避機制。
另一種附加的支持機制由DatabaseMetaData接口提供,該接口提供了DBMS的描述性信息。這在跨平臺應用中尤為有用,它有助于使應用程序適合于不同的數據庫管理系統的需求和能力。
JDBC兼容性:
SUN創建了JDBC兼容性定義,用來表示可以依賴于提供商的JDBC實現來遵守JDBC功能的標準層。在提供商使用該定義之前,提供商的驅動程序必須通過Sun的JDBC一致性測試
java.sql.Driver方法jdbcCompliant()報告驅動程序是否滿足JDBC兼容性。當調用該方法時,如果它通過了JDBC兼容性測試,驅動程序可能只報告true,反正false。
Sun定義了一下三種JDBC兼容等級:
JDBC1.0API兼容性,要求實現一下接口:
>java.sql.Driver
>java.sql.DataBaseMetaData
>java.sqlResultSetMetaData
>java.sql.Connection
>java.sql.Statement
>java.sql.CallableStatement
>java.sql.PreparedStatement
>java.sql.ResultSet
JDBC2.0 API兼容性要求:
>JDBC1.0 API兼容性要求
>JDBC2.0中定義的數據庫元數據接口擴展的完整實現
>附加JDBC2.0 ResultSet方法實現
JDBC 3.0 API 兼容性要求:
>JDBC 2.0 API兼容性
>java.sql.Parameter元數據的實現
>java.sql.Savepoint的實現
>JDBC3.0中定義的數據庫元數據接口擴展的完整實現
驅動程序開發人員可以通過使用JDBC API可用的測試組來確定他們的驅動程序是否滿足JDBC兼容性標準。