构建连接

首先,您需要与要使用的数据源构建连接。数据源可以是 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.Driverinterface的类。 Java DB 的驱动程序是org.apache.derby.jdbc.EmbeddedDriverorg.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是托管数据库的计算机的主机名和端口号。如果未指定,则hostport的默认值分别为 127.0.0.1 和 3306.

  • database是要连接的数据库的名称。如果未指定,则不使用默认数据库进行连接。

  • failover是备用数据库的名称(MySQL Connector/J 支持故障转移)。

  • propertyName=propertyValue代表一个可选的,与号分隔的属性列表。这些属性使您可以指示 MySQL Connector/J 执行各种任务。

有关更多信息,请参见MySQL 参考手册