03_JDBC實戰連接Mysql數據庫

實戰環境

  • JDK1.8
  • Mysql5.6
  • mysql-connector-java-6.0.6.jar

建立一個連接

首先,用你想用的數據源建立一個連接。這個數據源可以是DBMS,一個傳統的文件系統或者是其他的使用了相應的JDBC驅動程序的數據源。這個連接被一個Connection對象所表示出來。通常來說,一個JDBC應用連接一個目標數據源用下面兩種類中的一種即可:

  • DriverManager

    這個完全實現的類將應用程序連接到由數據庫url指定的數據源。當此類第一次嘗試建立一個連接,它會自動在應用的classpath下加載發現的任意JDBC4.0驅動。注意你的應用程序必須手動的加載JDBC版本在4.0版本之前。

  • DataSource

    這個接口優於DriverManager,是因爲它允許底層數據源的詳細信息對應用程序而言是透明的。一個DataSource(數據源)對象的相關屬性被設置,以便它代表一個特定的數據源

使用DriverManager

想使用DriverManager連接到你的DBMS,可以使用DriverManager類的DriverManager.getConnection方法。

public Connection getConnection() throws SQLException {
    Connection conn = null;
    Properties connectionProps = new Properties();
    // 設置連接帳號
    connectionProps.put("user","");
    // 設置連接密碼
    connectionProps.put("password","");
    // 獲取連接
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test");
    System.out.println("Connected to database " + conn);
    return conn;
}

方法DriverManager.getConnection建立了一個數據庫連接。這個方法需要一個數據庫連接URL,這個URL取決於你使用的是那種數據庫了,這裏使用的是Mysql數據庫,所以連接的URL應該是下面這種形式的:

Mysql:jdbc:mysql://localhost:3306/

localhost:你想要連接的數據庫的主機名,用ip也行

3306:端口號,Mysql的默認端口號是3306,請根據實際情況進行填寫

注意:

  • 通常來說,在數據庫連接地址URL上,你也能夠指定你想要連接的已經在數據庫中存在的數據庫的名稱,例如:jdbc:mysql://localhost:3306/mysql,這個連接就代表這你要連接的數據庫中的mysql數據庫。

  • 在之前版本的JDBC中,想要獲得一個連接,你的第一步是要通過調用Class.forName來實例化你的JDBC驅動。這個方法需要一個java.sql.Driver類型的對象。和一個Mysql Connector/J 的驅動com.mysql.jdbc.Driver。

    任意JDBC4.0的驅動都會自動在你的類路徑下加載驅動(然後,你必須手工的用Class.forName方法加載JDBC4.0之前的版本的驅動)

這個方法將會返回一個Connection對象,這個對象代表了DBMS或者是一個指定的數據庫。通過這個對象,你就可以執行數據庫的查詢操作了。

實戰

需求

連接本地的mysql數據庫中的test數據庫,並打印出連接的數據庫名。

代碼

public static Connection getConnection() {
        try (Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=UTC", "root", "aA123456")) {
            System.out.println("Connected to database : " + connection.getCatalog());
            return connection;
        } catch (Exception e) {
            System.out.println("Connected error " + e);
        }
        return null;
    }

指定數據庫連接URL

一個數據庫連接的URL是一個讓你的DBMS JDBC的驅動去連接你的數據庫的字符串。它包含了數據庫的地址信息,你想要連接的數據庫名稱,和一些配置信息。數據庫連接的URL的確切語法則有該數據庫的DBMS指定。

MySQL Connector/J DatabaseURL

以下是MySQL Connector/J 的數據庫連接url語法:

jdbc:mysql://[host][,failoverhost...]
    [:port]/[database]
    [?propertyName1][=propertyValue1]
    [&propertyName2][=propertyValue2]...

參數解釋:

  • host:port 

    是託管數據庫的計算機的主機名和端口號,如果沒有特別指定,默認的host:port 是127.0.0.1:3306。

  • database

    要連接的數據庫名,如果沒有指定,則建立一個沒有默認數據庫的連接。

  • propertyName=propertyValue

    可選參數,以&符號分隔的屬性列表,例如執行數據庫連接的時區,所使用的字符集,是否需要ssl認證等屬性,可以從Mysql Reference Manual中查詢。

這裏只對Mysql的連接方式做出說明,如果需要其他連接方式,也大同小異。

參考文章:https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章