JDBC是什麼?
JDBC代表Java數據庫連接(Java Database Connectivity),它是用於Java編程語言和數據庫之間的數據庫無關連接的標準Java API,換句話說:JDBC是用於在Java語言編程中與數據庫連接的API。
JDBC庫包括通常與數據庫使用相關,如下面提到的每個任務的API -
連接到數據庫
創建SQL或MySQL語句
在數據庫中執行SQL或MySQL查詢
查看和修改結果記錄
從根本上說,JDBC是一個規範,它提供了一整套接口,允許以一種可移植的訪問底層數據庫API。 Java可以用它來編寫不同類型的可執行文件,如 -
- Java應用程序
- Java Applet
- Java Servlets
- Java ServerPages(JSP)
- 企業級JavaBeans(EJB)
所有這些不同的可執行文件都能夠使用JDBC驅動程序來訪問數據庫,並用於存儲數據到數據庫中。
JDBC提供與ODBC相同的功能,允許Java程序包含與數據庫無關的代碼(同樣的代碼,只需要指定使用的數據庫類型,不需要重修改數據庫查詢或操作代碼)。
先決條件
在進一步瞭解之前,需要對以下兩個Java和數據庫SQL語句有很好的瞭解 -
- JAVA編程
- SQL或MySQL數據庫
JDBC架構
JDBC API支持用於數據庫訪問的兩層和三層處理模型,但通常,JDBC體系結構由兩層組成:
- JDBC API:提供應用程序到JDBC管理器連接。
- JDBC驅動程序API:支持JDBC管理器到驅動程序連接。
JDBC API使用驅動程序管理器並指定數據庫的驅動程序來提供與異構數據庫的透明連接。
JDBC驅動程序管理器確保使用正確的驅動程序來訪問每個數據源。 驅動程序管理器能夠支持連接到多個異構數據庫的多個併發驅動程序。
以下是架構圖,它顯示了驅動程序管理器相對於JDBC驅動程序和Java應用程序的位置 -
常見的JDBC組件
JDBC API提供以下接口和類 -
DriverManager
:此類管理數據庫驅動程序列表。 使用通信子協議將來自java應用程序的連接請求與適當的數據庫驅動程序進行匹配。在JDBC下識別某個子協議的第一個驅動程序將用於建立數據庫連接。Driver
:此接口處理與數據庫服務器的通信。我們很少會直接與Driver
對象進行交互。 但會使用DriverManager
對象來管理這種類型的對象。 它還提取與使用Driver
對象相關的信息。Connection
:此接口具有用於聯繫數據庫的所有方法。 連接(Connection
)對象表示通信上下文,即,與數據庫的所有通信僅通過連接對象。Statement
:使用從此接口創建的對象將SQL語句提交到數據庫。 除了執行存儲過程之外,一些派生接口還接受參數。ResultSet
:在使用Statement
對象執行SQL查詢後,這些對象保存從數據庫檢索的數據。 它作爲一個迭代器並可移動ResultSet
對象查詢的數據。SQLException
:此類處理數據庫應用程序中發生的任何錯誤。
JDBC 4.0包
java.sql
和javax.sql
是JDBC 4.0的主要包。這是編寫本教程時最新的JDBC版本。 它提供了與數據源進行交互的主要類。
這些包中的新功能包括以下更改(增強) -
- 自動數據庫驅動程序加載
- 異常處理改進
- 增強的
BLOB/CLOB
功能 -
Connection
和Statement
接口的增強 - 國家字符集支持
- SQL ROWID訪問
- SQL 2003 XML數據類型的支持
- 註解支持