构建 Java 应用
要构建访问自治 AI 数据库的 Java 应用,首先需要配置开发系统来支持数据库访问,以利用自治 AI 数据库的持续可用性和高性能特性。
将开发系统配置为支持数据库访问后,您将在应用程序中编写数据库连接和 SQL 语句的代码,以利用持续可用性和高性能功能。
提示:有关阅读以下主题的“试用”替代方案,您可以浏览 Oracle Autonomous AI Database Dedicated for Developers and Database Users Workshop 中的 Lab 5:Build Java Application Stacks 。
配置您的 Java 开发系统
要配置您的开发系统,以便 Java 应用可以利用自治 AI 数据库的持续可用性和高性能功能,请执行以下步骤。
-
下载并安装 Java Development Kit (JDK)。
-
下载自治 AI 数据库的客户端身份证明。
-
获取 Oracle Java 数据库连接 (JDBC) 驱动程序。
使用须知
您的开发系统必须满足某些标准才能成功配置。
-
它必须有互联网接入。
-
它必须具有对自治 AI 数据库的网络访问权限。
请参见 Configure a Development System to Access the Database ,了解如何确保开发系统满足此要求。
下载和安装 JDK
转到 Java SE 下载页面。然后,按照页面上的说明下载并安装 JDK 8u221 或更高版本。
下载自治 AI 数据库的客户端身份证明
-
将包含数据库客户端身份证明的 zip 文件下载到计算机上的安全目录。
可以从 Oracle Cloud 控制台中数据库的“详细信息”页下载此 zip 文件。如果您的 Oracle Cloud 用户账户允许您访问此页,请按如下方式下载身份证明。如果您没有这样的帐户,则需要从数据库的管理员那里获取 zip 文件,以及用于保护 zip 文件的密码。
-
在 Web 浏览器中,登录到 Oracle Cloud 并导航到自治 AI 数据库的“详细信息”页面。
-
单击 DB Connection 。
-
在数据库连接页上,单击下载。
-
在 Download Wallet(下载 Wallet)对话框中,在 Password(口令)字段中输入口令,然后在 Confirm Password(确认口令)字段中验证该口令。
密码长度必须至少为 8 个字符,并且必须至少包含 1 个字母和 1 个数字字符或 1 个特殊字符。
-
单击 Download(下载)并解压缩,将客户端身份证明 zip 文件保存到安全目录。
-
获取 Oracle JDBC 驱动程序
从 Oracle Technical Resources 的 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 Technical Resources 获取 JDBC 驱动程序,请执行以下步骤。
-
转到 Oracle JDBC Downloads(下载)页面。然后,选择最新版本的驱动程序以转到其特定于版本的下载页面。
-
将此档案下载并解压缩到要放置 JDBC 驱动程序的目录:
ojdbc8-full.tar.gz。 -
将连接 URL 指向自治 AI 数据库。
将
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 验证与自治 AI 数据库的连接。
-
ojdbc8.jar:核心 JDBC 驱动程序 -
oraclepki.jar、osdt_core.jar和osdt_cert.jar:用于使用基于 wallet 的验证的自治 AI 数据库 -
ucp.jar:用于通用连接池 (Universal Connection Pooling,UCP) -
ons.jar和simplefan.jar:支持 FAN(快速应用程序通知)
-
代码数据库连接和 SQL 语句
将您的开发系统配置为支持与自治 AI 数据库的 Java 应用程序连接后,请遵循以下准则,以实现应用程序与数据库的连接的高性能和持续可用性:
-
使用连接池
-
启用 FAN(快速应用程序通知)。
-
使用与要执行的操作最匹配的预定义数据库服务。有关预定义数据库服务的信息,请参见 Predefined Database Service Names for Autonomous AI Databases 。
例如:
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 JDBC 驱动程序的详细信息,请参阅:
-
Oracle Database 19c JDBC Developer’s Guide 或 Oracle Database 26ai JDBC Developer’s Guide 中的 Introducing JDBC
-
Oracle Database 19c JDBC Developer’s Guide 或 Oracle Database 26ai JDBC Developer’s Guide 中的 Oracle Database JDBC Java API Reference
有关通用连接池的详细信息,请参见:
-
Oracle Database 19c Universal Connection Pool Developer’s Guide 或 Oracle Database 26ai Universal Connection Pool Developer’s Guide 中的 Introduction to UCP
-
Oracle Database 19c Universal Connection Pool Java API Reference 或 Oracle Database 26ai Universal Connection Pool Java API Reference 中的 Oracle Universal Connection Pool API Reference