使用 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
}