使用 java.sql.DriverManager 建立連線
要使用 java.sql.DriverManager
進行連線,你需要一個 JDBC URL 來連線到你的資料庫。JDBC URL 是特定於資料庫的,但它們都是表單
jdbc:<subprotocol>:<subname>
<subprotocol>
標識驅動程式或資料庫(例如 postgresql
,mysql
,firebirdsql
等),<subname>
是子協議特定的。
你需要檢查資料庫和 JDBC 驅動程式的文件,以獲取驅動程式的特定 URL 子協議和格式。
使用 url jdbc:somedb://localhost/foobar
建立與資料庫的連線的簡單示例:
try (Connection connection = DriverManager.getConnection(
"jdbc:somedb://localhost/foobar", "anna", "supersecretpassword")) {
// do something with connection
}
我們在這裡使用 try-with-resources ,因此即使發生異常,連線也會在完成後自動關閉。
Version <= 4
在 Java 6(JDBC 4.0)和更早版本中,try-with-resources 不可用。在這些版本中,你需要使用 finally
塊來顯式關閉連線:
Connection connection = DriverManager.getConnection(
"jdbc:somedb://localhost/foobar", "anna", "supersecretpassword");
try {
// do something with connection
} finally {
// explicitly close connection
connection.close();
}
Version < 4
JDBC 4.0(Java 6)引入了自動驅動程式載入的概念。如果使用 Java 5 或更早版本,或者未使用 JDBC 4 支援的舊 JDBC 驅動程式,則需要顯式載入驅動程式:
Class.forName("org.example.somedb.jdbc.Driver");
在進行任何連線之前,此行必須在程式中(至少)發生一次。
即使在使用 JDBC 4.0 的 Java 6 及更高版本中,也可能需要顯式載入驅動程式:例如,在驅動程式未載入到容器中的 Web 應用程式中,但作為 Web 應用程式的一部分。
或者,你也可以提供 Properties
物件進行連線:
Properties props = new Properties();
props.setProperty("user", "anna");
props.setProperty("password", "supersecretpassword");
// other, database specific, properties
try (Connection connection = DriverManager.getConnection(
"jdbc:somedb://localhost/foobar", props)) {
// do something with connection
}
甚至沒有屬性,例如,如果資料庫不需要使用者名稱和密碼:
try (Connection connection = DriverManager.getConnection(
"jdbc:somedb://localhost/foobar")) {
// do something with connection
}