使用 JDBC 和 IntelliJ 连接到 Oracle Autonomous Database
您可以使用 IntelliJ IDE 与 Oracle Autonomous Database 建立连接。以下各节提供了有关如何使用 Maven 项目或 Gradle 项目首次连接到 Oracle Autonomous Database 的信息。在连接到 Oracle Autonomous Database 之前,请确保已完成“先决条件”中所述的步骤。
Prerequisites
以下各节提供了有关在使用 Oracle JDBC 驱动程序和通用连接池将 Java 应用程序连接到 Oracle Autonomous Database 之前需要执行的任务的信息。请参阅适当的先决条件,具体取决于预配自治 Exadata VM 集群 (AVMC) 期间选择的验证类型。默认情况下,预配 AVMC 时会启用单向 TLS 连接。有关更多信息,请参见 Create an Autonomous Exadata VM Cluster 。
您可以在 AVMC 的“详细信息”页上找到验证类型。有关说明,请参见 View Details of an Autonomous Exadata VM Cluster 。
预配 Oracle Autonomous Database 实例
您需要访问 Oracle Autonomous Database。如果您尚未预配 Autonomous Database on Dedicated Exadata Infrastructure,请参阅从 Autonomous Database 开始之前。
请记住用于 ADMIN
用户的密码。出于演示目的,我们将使用 ADMIN
用户,但我们的建议是使用 Oracle SQL Developer 或 Database Actions 创建其他数据库用户。
安装 JDK 8
注意:
确保使用JDK8u162
或更高版本。使用 java -version
检查已安装的 JDK 版本。要检查 JDBC 驱动程序版本,请键入 java -jar ojdbc8.jar
。
从 Github 下载示例程序
- 从 Github 下载 ADBQuickStart.java 文件。此示例应用程序使用销售历史记录 (SH) 示例模式,并显示
SH.CUSTOMERS
表中的 20 条记录。 - 修改 ADBQuickStart.java 文件以包括 Oracle Autonomous Database 连接信息:
- DB_USER :可以使用
ADMIN
,即在创建 Oracle Autonomous Database 时默认创建的用户(如果您创建了另一个 Oracle Autonomous Database 用户,则可以改用该用户)。 - DB_PASSWORD :使用数据库用户的密码。If connecting as the
ADMIN
user, set this to the password you chose during the Create Autonomous Database step while provisioning Oracle Autonomous Database.出于安全原因,您需要在运行示例时通过控制台输入密码。 - DB_URL :按照查看 Autonomous Database 的连接字符串中的说明获取 Autonomous Database 的连接字符串。如果您直接在 Java 程序中使用,则需要在连接字符串中使用 \“ 转义 ”
一个快速启动 Java 文件示例如下所示:
DB_URL = "jdbc:oracle:thin:@jdbc:oracle:thin:@(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1521)(host=adb.us-sanjose-1.oraclecloud.com))(connect_data=(service_name=g13ec47eade81f7_demodb_low.adb.oraclecloud.com))(security=(ssl_server_cert_dn=\"CN=adb.us-sanjose-1.oraclecloud.com, OU=Oracle ADB SANJOSE, O=Oracle Corporation, L=Redwood City, ST=California, C=US\")))" DB_USER="ADMIN" and DB_PASSWORD="your_password"
- DB_USER :可以使用
- 保存对
ADBQuickStart.java
文件的更改。
故障排除和调试:如果您遇到任何错误,请参阅故障排除提示页以了解一些有用的提示。
预配 Oracle Autonomous Database 实例
您需要访问 Oracle Autonomous Database。如果您尚未预配 Autonomous Database on Dedicated Exadata Infrastructure,请参阅从 Autonomous Database 开始之前。
请记住用于 ADMIN
用户的密码。出于演示目的,我们将使用 ADMIN
用户,但我们的建议是使用 Oracle SQL Developer 或 Database Actions 创建其他数据库用户。
获取客户端身份证明
-
从 Autonomous Database 实例下载 wallet 文件,以获取包含访问 Autonomous Database 实例所需的客户端安全身份证明和网络配置设置的 zip 文件。
获取客户机安全凭证(
wallet.zip
文件):- ADMIN 用户:在 Oracle Cloud Infrastructure 控制台上,单击数据库连接。请参见 Download Client Credentials 。
- 其他用户(非管理员):从管理员获取 Autonomous Database 实例的 Oracle Wallet。
注意:
保护wallet.zip
文件及其内容,以防止未经授权的数据库访问。 - 解压缩客户机凭证文件 (
wallet.zip
)。
安装 JDK 8
注意:
确保使用JDK8u162
或更高版本。使用 java -version
检查已安装的 JDK 版本。要检查 JDBC 驱动程序版本,请键入 java -jar ojdbc8.jar
。
从 Github 下载示例程序
- 从 Github 下载 ADBQuickStart.java 文件。此示例应用程序使用销售历史记录 (SH) 示例模式,并显示
SH.CUSTOMERS
表中的 20 条记录。 - 修改 ADBQuickStart.java 文件以包括 Oracle Autonomous Database 连接信息:
- DB_USER :可以使用
ADMIN
,即在创建 Oracle Autonomous Database 时默认创建的用户(如果您创建了另一个 Oracle Autonomous Database 用户,则可以改用该用户)。 - DB_PASSWORD :使用数据库用户的密码。If connecting as the
ADMIN
user, set this to the password you chose during the Create Autonomous Database step while provisioning Oracle Autonomous Database.出于安全原因,您需要在运行示例时通过控制台输入密码。 - DB_URL :输入网络服务名 (TNS Alias) DBName_medium ,其中 DBName 是预配 Oracle Autonomous Database 时在 Create Autonomous Database 步骤中输入的 Oracle Autonomous Database 名称。在
tnsnames.ora
文件中可以看到可用的网络服务名,该文件是客户机凭证 zip 文件的一部分。TNS_ADMIN
应指向已解压缩 Oracle Autonomous Database 的客户端身份证明的位置。
一个快速启动 Java 文件示例如下所示:
DB_URL = "jdbc:oracle:thin:@DBName_medium?TNS_ADMIN=/Users/test/wallet_DBName" DB_USER="ADMIN" and DB_PASSWORD="enter_it_from_console"
- DB_USER :可以使用
- 保存对
ADBQuickStart.java
文件的更改。
过程
您可以使用 IntelliJ 以及 Maven 或 Gradle 连接到 Autonomous Database 。
- 创建 Maven 项目。
- 单击文件菜单,选择新建,然后选择项目。
- 选择左侧的 Maven ,然后选择最新版本的 JDK 作为项目 SDK 。
- 单击下一步。
- 将 Name 指定为 ADBQuickstart。
- 创建
ADBQuickStart.java
文件。- 右键单击
src/main/java
。 - 选择新建,然后选择 Java 类
- 输入
com.oracle.jdbctest.ADBQuickStart.java
。这将创建所需的程序包结构。确保将 ADBQuickstart.java 文件的内容复制到此新文件。
- 右键单击
- 使用以下更改修改
pom.xml
文件:添加 Oracle JDBC 驱动程序作为依赖项。ojdbc8-production
将下载 Oracle JDBC 驱动程序 (ojdbc8.jar
) 以及ucp.jar
(使用 UCP 作为客户端连接池时必需)、oraclepki.jar
、osdt_core.jar
和osdt_cert.jar
。These JARs are required for using Oracle Wallets while connecting to Oracle Autonomous Database.<properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8-production</artifactId> <version>19.18.0.0</version> <type>pom</type> </dependency> </dependencies>
- 构建并运行 ADB QuickStart。通过右键单击 ADBQuickStart.java ,然后单击 Build Module ADBQuickStart 来编译 Java 代码。确保在 Java 代码中没有任何编译错误,并且您使用的是最新 JDK 版本。
- 运行示例 Java 程序。右键单击 ADBQuickStart.java ,然后单击 Run ADBQuickStart.main() 。确保在控制台上输入数据库密码。
输出样例:
此时将显示查询的行以及成功消息,如以下屏幕中所示:
注意:
注:如果从防火墙后方连接到 Oracle Autonomous Database,您可能会遇到连接超时错误。运行此示例时,请确保位于防火墙之外,或者更新tnsnames.ora
文件以使用 HTTPS 代理。
- 按照 Gradle Guide 中有关 Gradle 下载和构建说明的说明进行操作,并在使用 Gradle 命令之前设置 PATH 变量。第一步,使用以下命令创建 Gradle 项目。确保为选择要生成的项目类型选择 2:application 。此外,对于 Source package (default:temp):,使用
com.oracle.jdbctest
。gradle init
- 将 ADBQuickStart.java 文件复制到
src/main/java/com/oracle/jdbctest
目录。 - 使用以下更改修改
build.gradle
文件:- 将
mavenCentral()
添加为系统信息库。 - 添加 Oracle JDBC 驱动程序作为依赖项。
注意:
ojdbc8- 生产下载 Oracle JDBC 驱动程序 (ojdbc8.jar
) 以及ucp.jar
(使用 UCP 作为客户端连接池时必需)、oraclepki.jar
、osdt_core.jar
和osdt_cert.jar
。在连接到 Oracle Autonomous Database 时使用 Oracle Wallets 需要这些 JAR。有关其他信息,请参阅《 Maven Central Guide 》。
- 将
mainClassName
更新为 ADBQuickStart。 - 添加
run
块以从控制台读取密码。repositories { // Maven Central mavenCentral() } dependencies { // Get the 19.18.0.0 Oracle JDBC driver along with other companion jars implementation("com.oracle.database.jdbc:ojdbc8-production:19.18.0.0") } application { // Define the main class for the application mainClassName ='{your_project_directory}.ADBQuickStart' } // To pause to read the password from console run { standardInput = System.in }
- 将
- 构建 Gradle 应用程序。确保您位于
build.gradle
文件所在的目录中。使用以下命令编译 Java 代码:./gradlew build
- 运行示例 Java 程序。
./gradlew run
输出样例:将显示已查询的行以及成功消息,如以下屏幕所示:
注意:
如果您从防火墙后方连接到 Oracle Autonomous Database,您可能会遇到连接超时错误。运行此示例时,请确保位于防火墙之外,或者更新tnsnames.ora
文件以使用 HTTPS 代理。