Getting Started

本教程随附的示例代码创建了一个数据库,该数据库由名为 The Coffee Break 的小型咖啡馆的所有人使用,该咖啡馆按磅出售咖啡 bean,而冲泡咖啡则按杯子出售。

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

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

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

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

如果需要,请安装数据库 管理 系统(DBMS)

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

请注意,如果您正在使用其他 DBMS,则可能必须更改教程示例的代码。

通过数据库供应商安装 JDBC 驱动程序

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

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

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

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

注意 :应该将 JDBC-ODBCbridge 视为过渡解决方案。 Oracle 不支持它。仅当您的 DBMS 不提供仅 Java 的 JDBC 驱动程序时,才考虑使用此功能。

  • 类型 2 :部分用 Java 编程语言和部分本机代码编写的驱动程序。这些驱动程序使用特定于它们连接到的数据源的本机 Client 端库。同样,由于本机代码,它们的可移植性受到限制。 Oracle 的 OCI(Oracle 调用interface)Client 端驱动程序是 Type 2 驱动程序的示例。

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

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

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

安装 JDBC 驱动程序通常包括将驱动程序复制到计算机上,然后将其位置添加到 Classpath 中。另外,除 Type 4 驱动程序外,许多 JDBC 驱动程序都要求您安装 Client 端 API。通常不需要其他特殊配置。

安装 Apache Ant

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

http://ant.apache.org/

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

安装 Apache Xalan

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

http://xml.apache.org/xalan-j/

下载示例代码

示例代码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 tutorial directory>。将JDBCTutorial.zip的内容解压缩到<JDBC tutorial directory>

修改 build.xml 文件

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包含 samples 所需的属性。

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

Modify build.xml

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

<property
  name="ANTPROPERTIES"
  value="properties/javadb-build-properties.xml"/>

  <import file="${ANTPROPERTIES}"/>

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

<property
  name="ANTPROPERTIES"
  value="properties/mysql-build-properties.xml"/>

  <import file="${ANTPROPERTIES}"/>

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

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

PropertyDescription
JAVAC您的 Java 编译器的完整路径名javac
JAVAJava 运行时可执行文件的完整路径名java
PROPERTIESFILE属性文件的名称,即properties/javadb-sample-properties.xmlproperties/mysql-sample-properties.xml
MYSQLDRIVERMySQL 驱动程序的完整路径名。对于 Connector/J,通常为<Connector/J installation directory>/mysql-connector-java-version-number.jar
JAVADBDRIVERJava DB 驱动程序的完整路径名。通常是<Java DB installation directory>/lib/derby.jar
XALANDIRECTORY包含 Apache Xalan 的目录的完整路径名。
CLASSPATHJDBC 教程使用的 Classpath。 您不需要更改此值.
XALAN文件xalan.jar的完整路径名。
DB.VENDORderbymysql分别取决于您使用的是 Java DB 还是 MySQL。本教程使用此值来构造连接到 DBMS 所需的 URL,并标识特定于 DBMS 的代码和 SQL 语句。
DB.DRIVERJDBC 驱动程序的全限定类名。对于 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.PASSWORDDB.USER中指定的用户密码。
DB.DELIMITER用于分隔 SQL 语句的字符。 *请勿更改此值.*它应该是分号字符(;)。

修改教程属性文件

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

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

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

编译并打包 samples

在命令提示符下,将当前目录更改为<JDBC tutorial directory>。在此目录中,运行以下命令来编译 samples 并将其打包在一个 jar 文件中:

ant jar

创建数据库,表并填充表

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

ant create-mysql-database

注意build.xml文件中没有相应的 Ant 目标,该目标为 Java DB 创建了数据库。 Java DB 的数据库 URL(用于构建数据库连接)包括用于创建数据库的选项(如果尚不存在)。有关更多信息,请参见构建连接

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

ant setup

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

运行 samples

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

Ant Target类或 SQL 脚本其他必需的类或文件
javadb-create-procedurejavadb/create-procedures.sql;查看build.xml文件以查看其他正在运行的 SQL 语句没有其他必填文件
mysql-create-proceduremysql/create-procedures.sql .没有其他必填文件
runJDBCTutorialUtilities没有其他必修课
runctCoffeesTableJDBCTutorialUtilities
runstSuppliersTableJDBCTutorialUtilities
runjrsJdbcRowSetSampleJDBCTutorialUtilities
runcrsCachedRowSetSample , ExampleRowSetListenerJDBCTutorialUtilities
runjoinJoinSampleJDBCTutorialUtilities
runfrsFilteredRowSetSampleJDBCTutorialUtilities , CityFilter , StateFilter
runwrsWebRowSetSampleJDBCTutorialUtilities
runclobClobSampleJDBCTutorialUtilities , txt/colombian-description.txt
runrssRSSFeedsTableJDBCTutorialUtilities,包含在xml目录中的 XML 文件
rundlDatalinkSampleJDBCTutorialUtilities
runspjavadbStoredProcedureJavaDBSampleJDBCTutorialUtilities , SuppliersTable , CoffeesTable
runspmysqlStoredProcedureMySQLSampleJDBCTutorialUtilities , SuppliersTable , CoffeesTable
runframeCoffeesFrameJDBCTutorialUtilities , CoffeesTableModel

例如,要运行类CoffeesTable,将当前目录更改为<JDBC tutorial directory>,然后从该目录运行以下命令:

ant runct