入门

原文: https://docs.oracle.com/javase/tutorial/jdbc/basics/gettingstarted.html

本教程附带的示例代码创建了一个数据库,该数据库由一家名为 The Coffee Break 的小咖啡馆的老板使用,其中咖啡豆由英镑出售,而咖啡则由杯子出售。

以下步骤配置 JDBC 开发环境,您可以使用该环境编译和运行教程示例:

  1. 在您的计算机上安装最新版本的 Java SE SDK
  2. 如果需要,安装数据库管理系统(DBMS)
  3. 从数据库供应商处安装 JDBC 驱动程序
  4. 安装 Apache Ant
  5. 安装 Apache Xalan
  6. 下载示例代码
  7. 修改build.xml文件
  8. 修改教程属性文件
  9. 编译并打包样例
  10. 创建数据库,表格和填充表格
  11. 运行样例

在您的计算机上安装最新版本的 Java SE SDK。

确保 Java SE SDK bin目录的完整目录路径位于PATH环境变量中,以便可以从任何目录运行 Java 编译器和 Java 应用程序启动器。

您可以使用 Java DB,它随最新版本的 Java SE SDK 一起提供。本教程已针对以下 DBMS 进行了测试:

请注意,如果您使用的是其他 DBMS,则可能需要更改教程示例的代码。

如果您使用的是 Java DB,则它已经附带了 JDBC 驱动程序。如果您使用的是 MySQL,请安装最新版本的 Connector / J

请与数据库的供应商联系以获取 DBMS 的 JDBC 驱动程序。

JDBC 驱动程序有许多可能的实现。这些实现分类如下:

  • 类型 1 :实现 JDBC API 作为到另一个数据访问 API 的映射的驱动程序,例如 ODBC(开放式数据库连接)。此类驱动程序通常依赖于本机库,这限制了它们的可移植性。 JDBC-ODBC Bridge 是 Type 1 驱动程序的示例。

    注意:JDBC-ODBC Bridge 应被视为过渡解决方案。 Oracle 不支持它。仅当您的 DBMS 不提供仅 Java 的 JDBC 驱动程序时才考虑使用此选项。

  • Type 2 :部分用 Java 编程语言编写的驱动程序,部分用本机代码编写。这些驱动程序使用特定于它们所连接的数据源的本机客户端库。同样,由于本机代码,它们的可移植性是有限的。 Oracle 的 OCI(Oracle 调用接口)客户端驱动程序是 Type 2 驱动程序的一个示例。

  • 类型 3 :使用纯 Java 客户端并使用独立于数据库的协议与中间件服务器通信的驱动程序。然后,中间件服务器将客户端的请求传递给数据源。

  • 类型 4 :纯 Java 的驱动程序,实现特定数据源的网络协议。客户端直接连接到数据源。

检查 DBMS 附带的驱动程序类型。 Java DB 附带两个 Type 4 驱动程序,一个嵌入式驱动程序和一个网络客户端驱动程序。 MySQL Connector / J 是 Type 4 驱动程序。

安装 JDBC 驱动程序通常包括将驱动程序复制到计算机,然后将其位置添加到类路径中。此外,除 Type 4 驱动程序之外的许多 JDBC 驱动程序都要求您安装客户端 API。通常不需要其他特殊配置。

这些步骤使用 Apache Ant(一种基于 Java 的工具)来构建,编译和运行 JDBC 教程示例。转到以下链接下载 Apache Ant:

[http://ant.apache.org/](http://ant.apache.org/)

确保 Apache Ant 可执行文件位于PATH环境变量中,以便您可以从任何目录运行它。

如果您的 DBMS 是 Java DB,使用 SQLXML 对象中描述的样例RSSFeedsTable.java需要 Apache Xalan。该示例使用 Apache Xalan-Java。转到以下链接下载它:

[http://xml.apache.org/xalan-j/](http://xml.apache.org/xalan-j/)

示例代码[JDBCTutorial.zip](examples/zipfiles/JDBCTutorial.zip)包含以下文件:

  • properties
    • javadb-build-properties.xml
    • javadb-sample-properties.xml
    • mysql-build-properties.xml
    • mysql-sample-properties.xml
  • sql
    • javadb
      • create-procedures.sql
      • create-tables.sql
      • drop-tables.sql
      • populate-tables.sql
    • mysql
      • create-procedures.sql
      • create-tables.sql
      • drop-tables.sql
      • populate-tables.sql
  • src/com/oracle/tutorial/jdbc
    • CachedRowSetSample.java
    • CityFilter.java
    • ClobSample.java
    • CoffeesFrame.java
    • CoffeesTable.java
    • CoffeesTableModel.java
    • DatalinkSample.java
    • ExampleRowSetListener.java
    • FilteredRowSetSample.java
    • JdbcRowSetSample.java
    • JDBCTutorialUtilities.java
    • JoinSample.java
    • ProductInformationTable.java
    • RSSFeedsTable.java
    • StateFilter.java
    • StoredProcedureJavaDBSample.java
    • StoredProcedureMySQLSample.java
    • SuppliersTable.java
    • WebRowSetSample.java
  • txt
    • colombian-description.txt
  • xml
    • rss-coffee-industry-news.xml
    • rss-the-coffee-break-blog.xml
  • build.xml

创建一个目录以包含该示例的所有文件。这些步骤将此目录称为_< JDBC 教程目录>_。将[JDBCTutorial.zip](examples/zipfiles/JDBCTutorial.zip)的内容解压缩到_< JDBC 教程目录>_

build.xml文件是 Apache Ant 用于编译和执行 JDBC 示例的构建文件。文件properties/javadb-build-properties.xmlproperties/mysql-build-properties.xml分别包含 Java DB 和 MySQL 所需的其他 Apache Ant 属性。文件properties/javadb-sample-properties.xmlproperties/mysql-sample-properties.xml包含样例所需的属性。

修改这些 XML 文件,如下所示:

修改 build.xml

build.xml文件中,修改属性ANTPROPERTIES以引用properties/javadb-build-properties.xmlproperties/mysql-build-properties.xml,具体取决于您的 DBMS。例如,如果您使用的是 Java DB,则build.xml文件将包含以下内容:

  1. <property
  2. name="ANTPROPERTIES"
  3. value="properties/javadb-build-properties.xml"/>
  4. <import file="${ANTPROPERTIES}"/>

同样,如果您使用 MySQL,您的build.xml文件将包含以下内容:

  1. <property
  2. name="ANTPROPERTIES"
  3. value="properties/mysql-build-properties.xml"/>
  4. <import file="${ANTPROPERTIES}"/>

修改特定于数据库的属性文件

properties/javadb-build-properties.xmlproperties/mysql-build-properties.xml文件中(取决于您的 DBMS),修改以下属性,如下表所述:

属性 描述
JAVAC Java 编译器的完整路径名,javac
JAVA Java 运行时可执行文件的完整路径名,java
PROPERTIESFILE 属性文件的名称,properties/javadb-sample-properties.xmlproperties/mysql-sample-properties.xml
MYSQLDRIVER MySQL 驱动程序的完整路径名。对于 Connector / J,这通常是_&lt; Connector / J 安装目录&gt;_ / mysql-connector-java- _version-number_ .jar
JAVADBDRIVER Java DB 驱动程序的完整路径名。这通常是_&lt; Java DB 安装目录&gt;_ /lib/derby.jar
XALANDIRECTORY 包含 Apache Xalan 的目录的完整路径名。
CLASSPATH JDBC 教程使用的类路径。您无需更改此值
XALAN 文件的完整路径名xalan.jar
DB.VENDOR derbymysql取决于您是分别使用 Java DB 还是 MySQL。本教程使用此值构造连接到 DBMS 所需的 URL,并标识特定于 DBMS 的代码和 SQL 语句。
DB.DRIVER JDBC 驱动程序的标准类名。对于 Java DB,这是org.apache.derby.jdbc.EmbeddedDriver。对于 MySQL,这是com.mysql.jdbc.Driver
DB.HOST 托管 DBMS 的计算机的主机名。
DB.PORT 托管 DBMS 的计算机的端口号。
DB.SID 教程创建和使用的数据库的名称。
DB.URL.NEWDATABASE 用于在创建新数据库时连接到 DBMS 的连接 URL。您无需更改此值
DB.URL 用于连接到 DBMS 的连接 URL。您无需更改此值
DB.USER 有权访问 DBMS 中的数据库的用户的名称。
DB.PASSWORD DB.USER中指定的用户密码。
DB.DELIMITER 用于分隔 SQL 语句的字符。请勿更改此值。它应该是分号字符(;)。

教程示例使用properties/javadb-sample-properties.xml文件或properties/mysql-sample-properties.xml文件(取决于您的 DBMS)中的值连接到 DBMS 并初始化数据库和表,如下表所述:

属性 描述
dbms derbymysql取决于您是分别使用 Java DB 还是 MySQL。本教程使用此值构造连接到 DBMS 所需的 URL,并标识特定于 DBMS 的代码和 SQL 语句。
jar_file 包含本教程的所有类文件的 JAR 文件的完整路径名。
driver JDBC 驱动程序的标准类名。对于 Java DB,这是org.apache.derby.jdbc.EmbeddedDriver。对于 MySQL,这是com.mysql.jdbc.Driver
database_name 教程创建和使用的数据库的名称。
user_name 有权访问 DBMS 中的数据库的用户的名称。
password user_name中指定的用户密码。
server_name 托管 DBMS 的计算机的主机名。
port_number 托管 DBMS 的计算机的端口号。

注意:为了简单地演示 JDBC API,JDBC 教程示例代码不执行已部署系统通常使用的密码管理技术。在生产环境中,您可以遵循 Oracle 数据库密码管理准则并禁用任何示例帐户。有关密码管理指南和其他安全性,请参阅 Oracle 数据库安全指南 管理应用程序开发人员安全中的应用程序设计中的密码部分建议。

在命令提示符下,将当前目录更改为_&lt; JDBC 教程目录&gt;_。在此目录中,运行以下命令以编译示例并将其打包在 jar 文件中:

  1. ant jar

如果您使用的是 MySQL,请运行以下命令来创建数据库:

  1. ant create-mysql-database

build.xml文件中没有为 Java DB 创建数据库的对应 Ant 目标。用于建立数据库连接的 Java DB 的数据库 URL 包括创建数据库的选项(如果它尚不存在)。有关详细信息,请参阅建立连接

如果您使用的是 Java DB 或 MySQL,则从同一目录运行以下命令以删除现有的示例数据库表,重新创建表并填充它们。对于 Java DB,此命令还会创建数据库(如果该数据库尚不存在):

  1. ant setup

注意:每次运行示例中的一个 Java 类之前,都应该运行命令ant setup。其中许多样例都希望样例数据库表的内容中包含特定数据。

build.xml文件中的每个目标对应于 JDBC 示例中的 Java 类或 SQL 脚本。下表列出了build.xml文件中的目标,每个目标执行的类或脚本,以及每个目标所需的其他类或文件:

蚂蚁目标 类或 SQL 脚本 其他必需的类或文件
javadb-create-procedure javadb/create-procedures.sql;请参阅build.xml文件以查看其他运行的 SQL 语句 没有其他必需的文件
mysql-create-procedure mysql/create-procedures.sql 没有其他必需的文件
run JDBCTutorialUtilities 没有其他必需的课程
runct CoffeesTable JDBCTutorialUtilities
runst SuppliersTable JDBCTutorialUtilities
runjrs JdbcRowSetSample JDBCTutorialUtilities
runcrs CachedRowSetSampleExampleRowSetListener JDBCTutorialUtilities
runjoin JoinSample JDBCTutorialUtilities
runfrs FilteredRowSetSample JDBCTutorialUtilitiesCityFilterStateFilter
runwrs WebRowSetSample JDBCTutorialUtilities
runclob ClobSample JDBCTutorialUtilitiestxt/colombian-description.txt
runrss RSSFeedsTable JDBCTutorialUtilitiesxml目录中包含的 XML 文件
rundl DatalinkSample JDBCTutorialUtilities
runspjavadb StoredProcedureJavaDBSample JDBCTutorialUtilitiesSuppliersTableCoffeesTable
runspmysql StoredProcedureMySQLSample JDBCTutorialUtilitiesSuppliersTableCoffeesTable
runframe CoffeesFrame JDBCTutorialUtilitiesCoffeesTableModel

例如,要运行类CoffeesTable,请将当前目录更改为_&lt; JDBC 教程目录&gt;_,并从此目录运行以下命令:

  1. ant runct