构建 Java 应用程序
要构建访问 an Autonomous Database 的 Java 应用,首先需要配置开发系统来支持数据库访问,以利用 Autonomous Database 的持续可用性和高性能功能。
将开发系统配置为支持数据库访问后,可以在应用程序中对数据库连接和 SQL 语句进行编码,以利用连续可用性和高性能功能。
提示:
要“试用”替代阅读以下主题,您可以参加 Oracle Autonomous Database Dedicated for Developers and Database Users Workshop 中的第 5 课:构建 Java 应用堆栈。相关主题
配置 Java 开发系统
要配置您的开发系统,使您的 Java 应用能够利用 an Autonomous Database 的持续可用性和高性能功能,请执行以下步骤。
- 下载并安装 Java Development Kit (JDK)。
- 下载 Autonomous Database 的客户端身份证明。
- 获取 Oracle Java Database Connectivity (JDBC) 驱动程序。
使用须知
您的开发系统必须符合某些标准才能成功配置它。
-
它必须有互联网接入。
-
它必须具有对 Autonomous Database 的网络访问权限。
要了解如何确保开发系统满足此要求,请参阅配置开发系统以访问数据库。
下载和安装 JDK
访问 Java SE 下载页面。然后,按照页面上的说明下载并安装 JDK 8u221 或更高版本。
下载 Autonomous Database 的客户端身份证明
-
将包含数据库客户端身份证明的 zip 文件下载到计算机上的安全目录。
可以从 Oracle Cloud 控制台中数据库的“详细信息”页下载此 zip 文件。如果您的 Oracle Cloud 用户账户允许您访问此页,请按如下方式下载身份证明。如果您没有这样的帐户,则需要从数据库的管理员那里获取 zip 文件,以及用于保护 zip 文件的密码。
-
在 Web 浏览器中,登录到 Oracle Cloud 并导航到 Autonomous Database 的“详细信息”页面。
-
单击 DB Connection(数据库连接)。
-
在数据库连接页上,单击下载。
-
在 Download Wallet 对话框中,在 Password 字段中输入口令,然后在 Confirm Password 字段中确认该口令。
密码长度必须至少为 8 个字符,并且必须包括至少 1 个字母和 1 个数字字符或 1 个特殊字符。
-
单击 Download(下载)并解压缩,以将客户端身份证明 zip 文件保存到安全目录。
-
获取 Oracle JDBC 驱动程序
从 Oracle 技术资源的 Maven Central 或 JDBC 下载页面中获取 Oracle JDBC 驱动程序(版本 19.6.0.0 或更高版本)。(有关相关视频和其他资源,请参见 Oracle Technologies JDBC 主页。)
要从 Maven Central 获取 JDBC 驱动程序,请执行以下步骤。
-
从 Central Maven Repository 获取 Oracle JDBC 驱动程序。
提供驱动程序 Maven 依赖性 GAV(GroupID、ArtifactID、VersionID)以拉取
ojdbc8.jar
以及其他 jar,例如oraclepki.jar
、osdt_core.jar
和osdt_cert.jar
。请参见Maven Central Guide 。对于
ojdbc8.jar
版本 19.6.0.0,请提供以下 GAV:<groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>19.7.0.0</version>
对于
ojdbc8.jar
版本 19.7.0.0,请提供以下 GAV:<groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8-production</artifactId> <version>19.7.0.0</version> <type>POM</type>
要从 Oracle 技术资源获取 JDBC 驱动程序,请执行以下步骤。
-
转至 Oracle JDBC 下载页。然后,选择最新版本的驱动程序以转到其特定于版本的下载页面。
-
将此归档文件下载并解压缩到要放置 JDBC 驱动程序的目录:
ojdbc8-full.tar.gz
。 -
将连接 URL 指向 Autonomous Database 。
将
TNS_ADMIN
附加到连接 URL,将其值设置为解压缩客户端身份证明的目录的完整路径。例如:// Use TNS alias name plus TNS_ADMIN with JDBC driver 18.3 or higher DB_URL="jdbc:oracle:thin:@wallet_dbname? TNS_ADMIN=/Users/test/wallet_dbname"; // For Microsoft Windows, use this for TNS_ADMIN: // TNS_ADMIN=C:\\Users\\test\\wallet_dbname”;
-
将以下解压缩的 JAR 文件的路径添加到您在编译和运行 Java 程序时使用的
CLASSPATH
环境变量中。使用 DataSourceSample.java 或 UCPSample.java 验证与 Autonomous Database 的连接。
ojdbc8.jar
:核心 JDBC 驱动程序oraclepki.jar
、osdt_core.jar
和osdt_cert.jar
:适用于使用基于 wallet 的验证的 Autonomous Databaseucp.jar
:用于通用连接池 (Universal Connection Pooling,UCP)ons.jar
和simplefan.jar
:用于 FAN(快速应用程序通知)支持
编写数据库连接和 SQL 语句的代码
将您的开发系统配置为支持与 an Autonomous Database 的 Java 应用连接后,请遵循以下准则,以实现应用与数据库连接的高性能和持续可用性:
- 使用连接池。
- 启用 FAN(快速应用程序通知)。
- 使用与要执行的操作最匹配的预定义数据库服务。有关预定义数据库服务的信息,请参阅自治数据库的预定义数据库服务名。
例如:
import java.sql.Connection;
import javax.sql.PooledConnection;
import oracle.jdbc.OracleConnection;
import oracle.jdbc.replay.OracleDataSourceFactory;
import oracle.jdbc.replay.OracleDataSource;
import oracle.jdbc.replay.OracleConnectionPoolDataSource;
...
PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
// Set the connection factory first before all other properties
pds.setConnectionFactoryClassName(
"oracle.jdbc.replay.OracleConnectionPoolDataSourceImpl");
pds.setFastConnectionFailoverEnabled(true);
pds.setURL("jdbc:oracle:thin:@tp_tls?TNS_ADMIN=/users/jdoe/adbcredentials");
pds.setUser("appuser");
pds.setPassword("<password>");
pds.setConnectionPoolName("JDBC_UCP_POOL");
Connection conn = pds.getConnection();
其他资源
- Oracle Database 19c JDBC Developer's Guide 或 Oracle Database 23ai JDBC Developer's Guide 中的 Introducing JDBC
- Oracle Database 19c JDBC Developer's Guide 或 Oracle Database 23ai JDBC Developer's Guide 中的 Oracle Database JDBC Java API Reference
- Oracle Database 19c Universal Connection Pool Developer's Guide 或 Oracle Database 23ai Universal Connection Pool Developer's Guide 中的 Introduction to UCP
- Oracle Database 19c Universal Connection Pool Java API Reference 或 Oracle Database 23ai Universal Connection Pool Java API Reference 中的 Oracle Universal Connection Pool API Reference