IntelliJでのJDBCを使用したOracle Autonomous Databaseへの接続

IntelliJ IDEを使用して、Oracle Autonomous Databaseへの接続を確立できます。次の項では、MavenプロジェクトまたはGradleプロジェクトを使用してOracle Autonomous Databaseに初めて接続する方法について説明します。Oracle Autonomous Databaseに接続する前に、前提条件で説明されているステップを完了していることを確認してください。

前提条件

次の項では、Oracle JDBCドライバおよびユニバーサル接続プールを使用してJavaアプリケーションをOracle Autonomous Databaseに接続する前に実行する必要があるタスクについて説明します。Autonomous Exadata VMクラスタ(AVMC)のプロビジョニング時に選択した認証タイプに応じて、適切な前提条件を参照してください。デフォルトでは、AVMCをプロビジョニングすると一方向TLS接続が有効になります。詳細は、Autonomous Exadata VMクラスタの作成を参照してください。

認証タイプは、AVMCの「詳細」ページで確認できます。手順については、Autonomous Exadata VMクラスタの詳細の表示を参照してください。

Oracle Autonomous Databaseインスタンスのプロビジョニング

Oracle Autonomous Databaseにアクセスする必要があります。まだプロビジョニングしていない場合は、専用Exadataインフラストラクチャ上のAutonomous Databaseを開始する前にを参照してください。

ADMINユーザーに使用したパスワードを覚えておいてください。デモンストレーションの目的では、ADMINユーザーを使用しますが、Oracle SQL Developerまたはデータベース・アクションを使用して他のデータベース・ユーザーを作成することをお薦めします。

JDK 8をインストール

最新のJDK 8またはより高いJDKバージョンをダウンロードします。

ノート:

JDK8u162以降のバージョンを使用していることを確認してください。java -versionを使用して、インストールしたJDKバージョンを確認します。JDBCドライバのバージョンを確認するには、java -jar ojdbc8.jarと入力します。

Githubからサンプルプログラムをダウンロード

  1. GithubからADBQuickStart.javaファイルをダウンロードします。このサンプル・アプリケーションは、Sales History (SH)サンプル・スキーマを使用し、SH.CUSTOMERS表の20個のレコードを表示します。
  2. ADBQuickStart.javaファイルを変更して、Oracle Autonomous Databaseの接続情報を含めます。
    • DB_USER: You can use ADMIN, the user created by default when the Oracle Autonomous Database is created (if you create another OracleAutonomous Database user, you can use that user instead).
    • 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"
  3. ADBQuickStart.javaファイルに対する変更を保存します。

トラブルシューティングおよびデバッグ: エラーが発生した場合は、「トラブルシューティングのヒント」ページで役立つヒントを参照してください。

Oracle Autonomous Databaseインスタンスのプロビジョニング

Oracle Autonomous Databaseにアクセスする必要があります。まだプロビジョニングしていない場合は、専用Exadataインフラストラクチャ上のAutonomous Databaseを開始する前にを参照してください。

ADMINユーザーに使用したパスワードを覚えておいてください。デモンストレーションの目的では、ADMINユーザーを使用しますが、Oracle SQL Developerまたはデータベース・アクションを使用して他のデータベース・ユーザーを作成することをお薦めします。

クライアント資格証明の取得

  1. Autonomous Databaseインスタンスからウォレット・ファイルをダウンロードして、Autonomous Databaseインスタンスにアクセスするために必要なクライアント・セキュリティ資格証明およびネットワーク構成設定を含むzipファイルを取得します。

    クライアント・セキュリティ資格証明(wallet.zipファイル)を取得します:

    • ADMINユーザー: Oracle Cloud Infrastructure Consoleで、「データベース接続」をクリックします。クライアント資格証明のダウンロードを参照してください。
    • 他のユーザー(非管理者): Autonomous Databaseインスタンスの管理者からOracle Walletを取得します。

    ノート:

    不正なデータベース・アクセスを防ぐために、wallet.zipファイルとそのコンテンツを保護します。
  2. クライアント資格証明ファイル(wallet.zip)を解凍します。

JDK 8をインストール

最新のJDK 8またはより高いJDKバージョンをダウンロードします。

ノート:

JDK8u162以降のバージョンを使用していることを確認してください。java -versionを使用して、インストールしたJDKバージョンを確認します。JDBCドライバのバージョンを確認するには、java -jar ojdbc8.jarと入力します。

Githubからサンプルプログラムをダウンロード

  1. GithubからADBQuickStart.javaファイルをダウンロードします。このサンプル・アプリケーションは、Sales History (SH)サンプル・スキーマを使用し、SH.CUSTOMERS表の20個のレコードを表示します。
  2. ADBQuickStart.javaファイルを変更して、Oracle Autonomous Databaseの接続情報を含めます。
    • DB_USER: You can use ADMIN, the user created by default when the Oracle Autonomous Database is created (if you create another OracleAutonomous Database user, you can use that user instead).
    • 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別名)DBName_mediumを入力します。DBNameは、Oracle Autonomous Databaseのプロビジョニング中に「Autonomous Databaseの作成」ステップで入力したOracle Autonomous Database名です。使用可能なネット・サービス名は、クライアント資格証明zipファイルの一部であるtnsnames.oraファイルで確認できます。

      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"
  3. ADBQuickStart.javaファイルに対する変更を保存します。

手順

IntelliJおよびMavenまたはGradleを使用してAutonomous Databaseに接続できます。

  1. Mavenプロジェクトを作成します。
    1. 「ファイル」メニューから、「新規」「プロジェクト」の順に選択します。
    2. 左側の「Maven」を選択し、JDKの最新バージョンを「Project SDK」として選択します。
    3. 「次へ」をクリックします。
    4. 「名前」にADBQuickstartを指定します。
  2. ADBQuickStart.javaファイルを作成します。
    1. src/main/javaを右クリックします。
    2. 「新規」「Javaクラス」の順に選択します。
    3. com.oracle.jdbctest.ADBQuickStart.javaと入力します。これにより、必要なパッケージ構造も作成されます。ADBQuickstart.javaファイルの内容をこの新しいファイルにコピーしてください。
  3. 次の変更でpom.xmlファイルを変更します: 依存関係としてOracle JDBCドライバを追加します。

    ojdbc8-productionは、Oracle JDBCドライバ(ojdbc8.jar)を、ucp.jar (クライアント側接続プールとしてUCPを使用するために必要)、oraclepki.jarosdt_core.jarosdt_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>
  4. ADB QuickStartを構築して実行します。ADBQuickStart.javaを右クリックし、「ビルド・モジュールADBQuickStart」をクリックして、Javaコードをコンパイルします。Javaコードにコンパイル・エラーがなく、最新のJDKバージョンを使用していることを確認してください。
  5. サンプルJavaプログラムを実行します。ADBQuickStart.javaを右クリックして、「ADBQuickStart.main()の実行」をクリックします。コンソールにデータベース・パスワードを入力してください。

    サンプル出力:

    次の画面に示すように、問合せされた行が成功メッセージとともに表示されます。



ノート:

ノート: ファイアウォールの内側からOracle Autonomous Databaseに接続すると、接続タイムアウト・エラーが発生する可能性があります。このサンプルの実行中にファイアウォールの外側にいることを確認するか、HTTPSプロキシを使用するようにtnsnames.oraファイルを更新してください。
  1. Gradleのダウンロードおよびビルド手順については、Gradle Guideの手順に従って、Gradleコマンドを使用する前にPATH変数を設定します。最初のステップとして、次のコマンドを使用してGradleプロジェクトを作成します。「生成するプロジェクトのタイプの選択」「2:application」を選択してください。また、ソース・パッケージ(default:temp)の場合は、com.oracle.jdbctestを使用します。
    gradle init
  2. ADBQuickStart.javaファイルを src/main/java/com/oracle/jdbctestディレクトリにコピーします。
  3. 次の変更でbuild.gradleファイルを変更します。
    • mavenCentral()をリポジトリとして追加します。
    • 依存関係としてOracle JDBCドライバを追加します。

      ノート:

      ojdbc8-productionは、Oracle JDBCドライバ(ojdbc8.jar)を、ucp.jar (クライアント側接続プールとしてUCPを使用するために必要)、oraclepki.jarosdt_core.jarosdt_cert.jarとともにダウンロードします。Oracle Autonomous Databaseへの接続中にOracleウォレットを使用するには、これらのJARが必要です。

      詳細は、Maven Centralガイドを参照してください。

    • 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
      }
  4. Gradleアプリケーションを作成します。build.gradleファイルが存在するディレクトリにいることを確認します。次のコマンドを使用して、Javaコードをコンパイルします。
    ./gradlew build
  5. サンプルJavaプログラムを実行します。
    ./gradlew run

    出力例: 次の画面に示すように、問合せされた行と成功メッセージが表示されます。



ノート:

ファイアウォールの内側からOracle Autonomous Databaseに接続すると、接続タイムアウト・エラーが発生する可能性があります。このサンプルの実行中にファイアウォールの外側にいることを確認するか、HTTPSプロキシを使用するようにtnsnames.oraファイルを更新してください。