1. 什么是 JDBC
JDBC,Java Database Connectivity(Java 數據庫連接),是一組執行 SQL 語句的 Java API。
JDBC,是 Java SE(Java Platform, Standard Edition)標準的一部分。
Java 程序可以通過 JDBC 連接到關系型數據庫,并且使用 SQL(Structured Query Language,結構化查詢語言)完成對數據庫的操作。
我們開發時常用的 ORM 框架(Object Relational Mapping),例如 Hibernate,MyBatis,其本質就是對 JDBC 的一種封裝。
?
?
2. JDBC 驅動和面向接口編程
Java API,就是接口(interface),所以說 JDBC 只給出了接口,沒有提供實現類。
由各個數據庫的廠商提供 JDBC 的實現,這些實現類就是我們口中常說的:驅動程序。
?
JDBC 的編程工作,是需要面向標準的 JDBC API,不需要關心使用的數據庫到底是什么。
使用 Oracle,DB2,還是 MyBatis 對于 JDBC 的編程都沒有影響,這就是面向接口編程。
理論上說,如果需要切換數據庫,只需要換一個驅動程序就可以了,所以說,JDBC 具有跨數據庫的特性。
?
當然實際操作上沒有這么簡單,因為 JDBC 跨數據庫的特性是基于全部使用標準的 SQL 語句,而某些數據庫會有一些只有自己才能用的特殊 SQL 語法。
例如,Oracle 的 rowid、rownum,MySQL 的 limit。
?
3. JDBC 組成和功能
JDBC的總體結構有四個組件:應用程序、驅動程序管理器、驅動程序和數據源。?
?
JDBC 主要有以下三個功能:
- 建立程序與數據庫的連接。
- 執行 SQL 語句。
- 獲得 SQL 語句的執行結果。
?
4. JDBC 和 ODBC
ODBC,Open Database Connectivity(開放數據庫連接),也是一組通過 API 訪問數據庫的技術。
ODBC 先于 JDBC 的出現,JDBC 模仿了 ODBC 的設計。
與 JDBC 相同,ODBC 需要數據庫廠商提供驅動,支持數據庫之間的切換,而 ODBC 負責管理數據庫驅動。
?
相比于 ODBC,JDBC 有以下優勢:
- JDBC 對于數據庫的操作更加簡單、直觀。
- JDBC 具有更高的安全性。
?