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.xml
和properties/mysql-build-properties.xml
分别包含 Java DB 和 MySQL 所需的其他 Apache Ant 属性。文件properties/javadb-sample-properties.xml
和properties/mysql-sample-properties.xml
包含 samples 所需的属性。
修改这些 XML 文件,如下所示:
Modify build.xml
在build.xml
文件中,修改属性ANTPROPERTIES
以引用properties/javadb-build-properties.xml
或properties/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.xml
或properties/mysql-build-properties.xml
文件(取决于您的 DBMS)中,修改以下属性,如下表所示:
Property | Description |
---|---|
JAVAC | 您的 Java 编译器的完整路径名javac |
JAVA | Java 运行时可执行文件的完整路径名java |
PROPERTIESFILE | 属性文件的名称,即properties/javadb-sample-properties.xml 或properties/mysql-sample-properties.xml |
MYSQLDRIVER | MySQL 驱动程序的完整路径名。对于 Connector/J,通常为<Connector/J installation directory>/mysql-connector-java-version-number.jar 。 |
JAVADBDRIVER | Java DB 驱动程序的完整路径名。通常是<Java DB installation directory>/lib/derby.jar 。 |
XALANDIRECTORY | 包含 Apache Xalan 的目录的完整路径名。 |
CLASSPATH | JDBC 教程使用的 Classpath。 您不需要更改此值. |
XALAN | 文件xalan.jar 的完整路径名。 |
DB.VENDOR | 值derby 或mysql 分别取决于您使用的是 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 并初始化数据库和表,如下表所述:
Property | Description |
---|---|
dbms | 值derby 或mysql 分别取决于您使用的是 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 数据库安全指南中管理 应用程序开发人员的安全性中的在应用程序设计中保护密码部分。
编译并打包 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-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 | CachedRowSetSample , ExampleRowSetListener | JDBCTutorialUtilities |
runjoin | JoinSample | JDBCTutorialUtilities |
runfrs | FilteredRowSetSample | JDBCTutorialUtilities , CityFilter , StateFilter |
runwrs | WebRowSetSample | JDBCTutorialUtilities |
runclob | ClobSample | JDBCTutorialUtilities , txt/colombian-description.txt |
runrss | RSSFeedsTable | JDBCTutorialUtilities ,包含在xml 目录中的 XML 文件 |
rundl | DatalinkSample | JDBCTutorialUtilities |
runspjavadb | StoredProcedureJavaDBSample | JDBCTutorialUtilities , SuppliersTable , CoffeesTable |
runspmysql | StoredProcedureMySQLSample | JDBCTutorialUtilities , SuppliersTable , CoffeesTable |
runframe | CoffeesFrame | JDBCTutorialUtilities , CoffeesTableModel |
例如,要运行类CoffeesTable
,将当前目录更改为<JDBC tutorial directory>
,然后从该目录运行以下命令:
ant runct