Java 數據庫連接
您了解 SQL 的基礎知識。這很好。但今天你會感覺更好。今天,您將開始學習如何通過 Java 應用程序使用數據庫。
有許多不同的 DBMS,因此 Java 的創建者決定標準化 Java 應用程序與數據庫的工作方式。他們稱這個標準為JDBC:Java DataBase Connectivity。
JDBC 有 3 個主要接口:
- Connection——負責連接數據庫
- Statement——負責查詢數據庫
- ResultSet——負責向數據庫查詢的結果
事實上,僅此而已。而且我們甚至不會學習所有接口的所有方法。只有工作示例,我們會逐漸復雜化。
JDBC 有點類似於使用 servlet。JDBC 的創建者編寫了多個接口,並自豪地稱其為 Java DataBase API。這些接口的實現被分配給...... DBMS 的創建者。它是如何在那裡實施的-沒人關心。工作正常。
JDBC 有四個版本,我們將查看最新版本。不是因為她是最酷的,而是因為她是最簡單的。
JDBC 驅動程序管理器
Java 應用程序和數據庫通過稱為 JDBC 驅動程序的庫相互通信。這是一組為特定 DBMS 實現 JDBC API 的類。
使用名為DriverManager的類選擇正確的 JDBC 驅動程序。它們的相互作用可以表示如下:
問題是,您可以使用 In-Memory-DB、No-SQL-DB,甚至是內置於 Android 應用程序中的數據庫。作為 Java 開發人員,您根本不關心這些細微差別。驅動程序管理器將為您選擇正確的 JDBC 驅動程序,一切都會像發條一樣工作。
順便問一下,他是怎麼做到的?
連接到 MySQL 服務器
還記得通過 MySQL Workbench 連接到本地 SQL 服務器需要什麼嗎?如果我忘了,那麼我提醒你,你需要三樣東西:
- 主持人
- 登錄
- 密碼
登錄名和密碼一切都很清楚,如果您還記得的話,主機是服務器所在計算機的名稱。如果它位於您的本地計算機上,則需要將 localhost 指定為主機名。如果不是本地的呢?
然後你需要使用... URL。URL 代表統一資源定位器。它可用於指定網絡上任何事物的位置:站點、打印機、SQL 服務器。實際上,該 URL 也用於訪問本地 SQL 服務器。它看起來像這樣:
mysql://localhost:3306/db_scheme
- mysql是一種服務器協議
- localhost - 網絡上的主機名
- 3306 - 發出請求的端口
- db_scheme - 模式名稱(數據庫名稱)
筆記。數據庫名稱可以省略。但是如果服務器存儲了很多數據庫模式,那麼通常會為它們創建不同的用戶和不同的訪問權限。如果您登錄 SQL Server 所使用的用戶沒有訪問所有數據庫的權限,那麼您肯定需要指定您有權訪問的特定數據庫的名稱。
在這個 url 的末尾可以有各種參數,編碼類型,時區,這些被認為是正在建立的新數據庫連接的參數。
此外,該協議可以是複合的。如果與數據庫服務器的所有通信都是通過使用 SSH 協議的加密通道進行的,那麼 URL 可以這樣指定:
ssh:mysql://localhost:3306/db_scheme
協議不一定是外部程序。例如,如果您正在使用一個使用 JNDI 協議的服務器,您可以這樣指定它:
jndi:mysql://localhost:3306/db_scheme
如果你想使用 JDBC API 協議工作,那麼你需要這樣寫:
jdbc:mysql://localhost:3306/db_scheme
當您嘗試創建數據庫連接時,JDBC 驅動程序管理器會解析您的 SQL-db-URL 並根據協議名稱確定 JDBC 驅動程序名稱。這是一個小技巧。
GO TO FULL VERSION