實戰環境
- 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