构建连接
首先,您需要与要使用的数据源构建连接。数据源可以是 DBMS,旧文件系统或具有相应 JDBC 驱动程序的其他数据源。通常,JDBC 应用程序使用以下两个类别之一连接到目标数据源:
-
DriverManager
:此完全实现的类将应用程序连接到由数据库 URL 指定的数据源。当此类首次try构建连接时,它将自动加载在 Classpath 中找到的所有 JDBC 4.0 驱动程序。请注意,您的应用程序必须手动加载 4.0 版之前的所有 JDBC 驱动程序。 -
DataSource
:该interface优于DriverManager
,因为它允许有关底层数据源的详细信息对您的应用程序透明。设置DataSource
对象的属性,使其代表特定的数据源。有关更多信息,请参见连接数据源对象。有关使用DataSource
类开发应用程序的更多信息,请参见最新的* Java EE 教程 *。
注意 :本教程中的示例使用DriverManager
类而不是DataSource
类,因为它更易于使用,并且这些示例不需要DataSource
类的功能。
此页面包含以下主题:
使用 DriverManager 类
使用DriverManager
类连接到 DBMS 涉及调用方法DriverManager.getConnection
。以下方法JDBCTutorialUtilities.getConnection
构建数据库连接:
public Connection getConnection() throws SQLException {
Connection conn = null;
Properties connectionProps = new Properties();
connectionProps.put("user", this.userName);
connectionProps.put("password", this.password);
if (this.dbms.equals("mysql")) {
conn = DriverManager.getConnection(
"jdbc:" + this.dbms + "://" +
this.serverName +
":" + this.portNumber + "/",
connectionProps);
} else if (this.dbms.equals("derby")) {
conn = DriverManager.getConnection(
"jdbc:" + this.dbms + ":" +
this.dbName +
";create=true",
connectionProps);
}
System.out.println("Connected to database");
return conn;
}
方法DriverManager.getConnection
构建数据库连接。此方法需要数据库 URL,具体取决于您的 DBMS。以下是数据库 URL 的一些示例:
-
MySQL:
jdbc:mysql://localhost:3306/
,其中localhost
是托管数据库的服务器的名称,而3306
是端口号 -
Java DB:
jdbc:derby:testdb;create=true
,其中testdb
是要连接的数据库的名称,create=true
指示 DBMS 创建数据库。
注意 :此 URL 与 Java DB Embedded 驱动程序构建数据库连接。 Java DB 还包括一个使用不同 URL 的网络 Client 端驱动程序。
此方法使用Properties
对象指定访问 DBMS 所需的用户名和密码。
Note :
-
通常,在数据库 URL 中,您还要指定要连接的现有数据库的名称。例如,URL
jdbc:mysql://localhost:3306/mysql
代表名为mysql
的 MySQL 数据库的数据库 URL。本教程中的示例使用未指定特定数据库的 URL,因为示例创建了一个新数据库。 -
在早期版本的 JDBC 中,要获得连接,您首先必须通过调用
Class.forName
方法来初始化 JDBC 驱动程序。此方法需要一个java.sql.Driver
类型的对象。每个 JDBC 驱动程序包含一个或多个实现java.sql.Driver
interface的类。 Java DB 的驱动程序是org.apache.derby.jdbc.EmbeddedDriver
和org.apache.derby.jdbc.ClientDriver
,而 MySQL Connector/J 的驱动程序是com.mysql.jdbc.Driver
。请参阅 DBMS 驱动程序的文档以获取实现interfacejava.sql.Driver
的类的名称。
在 Classpath 中找到的所有 JDBC 4.0 驱动程序都会自动加载。 (但是,您必须使用Class.forName
方法手动加载 JDBC 4.0 之前的所有驱动程序.)
该方法返回一个Connection
对象,该对象表示与 DBMS 或特定数据库的连接。通过该对象查询数据库。
指定数据库连接 URL
数据库连接 URL 是 DBMS JDBC 驱动程序用来连接数据库的字符串。它可以包含诸如在哪里搜索数据库,要连接到的数据库的名称以及配置属性之类的信息。数据库连接 URL 的确切语法由 DBMS 指定。
Java DB 数据库连接 URL
以下是 Java DB 的数据库连接 URL 语法:
jdbc:derby:[subsubprotocol:][databaseName]
[;attribute=value]*
-
subsubprotocol
指定 Java DB 在目录,内存,Classpath 或 JAR 文件中应在哪里搜索数据库。通常将其省略。 -
databaseName
是要连接的数据库的名称。 -
attribute=value
表示一个可选的,用分号分隔的属性列表。这些属性使您能够指示 Java DB 执行各种任务,包括以下各项: -
创建在连接 URL 中指定的数据库。
-
加密连接 URL 中指定的数据库。
-
指定用于存储日志记录和跟踪信息的目录。
-
指定用户名和密码以连接到数据库。
-
有关更多信息,请参见Java DB 技术文档中的* Java DB 开发人员指南和 Java DB 参考手册*。
MySQL 连接器/ J 数据库 URL
以下是 MySQL Connector/J 的数据库连接 URL 语法:
jdbc:mysql://[host][,failoverhost...]
[:port]/[database]
[?propertyName1][=propertyValue1]
[&propertyName2][=propertyValue2]...
-
host:port
是托管数据库的计算机的主机名和端口号。如果未指定,则host
和port
的默认值分别为 127.0.0.1 和 3306. -
database
是要连接的数据库的名称。如果未指定,则不使用默认数据库进行连接。 -
failover
是备用数据库的名称(MySQL Connector/J 支持故障转移)。 -
propertyName=propertyValue
代表一个可选的,与号分隔的属性列表。这些属性使您可以指示 MySQL Connector/J 执行各种任务。
有关更多信息,请参见MySQL 参考手册。