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 驅動程序名稱。這是一個小技巧。