Oracle Autonomous DatabaseによるJavaアプリケーションのクイックスタート

以下の簡単な手順に従い、Oracle JDBCドライバとUniversal Connection Poolを使用して、JavaアプリケーションをAutonomous Database(ADB)に接続します。Oracle Autonomous Databaseは一方向TLS相互TLS(mTLS)の両方で接続できますが、デフォルトは後者です。一方向TLS、別名TLSを使えば、Oracle WalletsもJKSもAutonomous Databaseに接続する必要がなくなります。mTLS要件を削除すると、一方向TLSと相互TLSの両方で接続を確立できます。前提条件のセクションでは、この2つのアプローチについて説明します。オラクルでは、長期リリースであるOracle JDBC version 19cの最新版を使用することを推奨しています。また、最新のオラクルJDBCバージョン21c-Innovation Releaseの新機能を要件とする場合や、オラクルJDBCバージョン23c Free-Developer Releaseを使用してコミュニティがサポートする新しいリリースにアクセスすることもできます。

TCP 接続を使用するOracle Database (オンプレミス)またはOracle Cloud Databaseに接続する場合は、 QuickStart Java applications with Oracle Database (オンプレミス)をご参照ください。その他の技術概要、ブログ、動画などについては、Oracle JDBCおよびUCPのランディング・ページをご参照ください。

    前提条件(一方向TLS)

    すべて開く すべて閉じる
  • 1.Autonomous Database(ADB)インスタンスのプロビジョニング

    Oracle Autonomous Database(ADB)へのアクセス権を取得します。まだADBインスタンスをプロビジョニングしていない場合は、以下のリンクをクリックしてADBインスタンスの手順を参照してください。

    ADMINユーザーで使用したパスワードをお忘れのないようご注意ください。このデモではADMINユーザーを使用しますが、SQLDeveloper かSQL Developer Webコンソールを使用して他のデータベース・ユーザーを作成することをお勧めします。

  • 2. 相互TLS(mTLS)要件の削除

      Autonomous Databaseの作成後、デフォルト・オプションとして相互TLSが有効になります。以下の手順に従って、相互TLS(mTLS)要件を削除し、一方向TLSを有効にしてください。TLSを有効にすると、TLSとmTLSの両方を使用してAutonomous Databaseに接続することができます。詳細については、ウォレットなしのJDBC Thin TLS Connections のセクションをご参照ください。

    • Oracle Cloud Consoleから、Oracle Autonomous DatabaseインスタンスのAutonomous Database Detailsページに移動します。詳細にある「Network」というタイトルのセクションを確認し、「Access Control List」の隣にある「Edit」をクリックします。
    • 「Edit Access Control List」ダイアログで、エントリーのタイプを選択し、適切な値を入力します。IPアドレス(ローカルIP)、CIDRブロック、VCN(名前またはOCID別)ごとにエントリを追加できます。必要な数だけ追加します。
    • Mutual TLS (mTLS) Authentication'フィールド「Edit」をクリックし、'Require mutual TLS(mTLS) authentication'のチェックを外します。
    • 更新には時間がかかり、ステータスは「使用可能」に変更されます。変更後、ネットワーク設定は以下のようになります。
  • 3. 最新のJDK8以上のインストール

    最新の JDK81 または それ以上のJDKバージョンをダウンロードしてください。

    JDK8u162以上を使用するようにしてください。"java -version"を使用してインストールしたJDKのバージョンを確認します。"java -jar ojdbc8.jar"を使用してJDBCドライバのバージョンを確認します。

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

    • GithubからADBQuickStart.javaをダウンロードします。このサンプル・アプリケーションは販売履歴(SH)サンプル・スキーマを使用し、SH.CUSTOMERS表から20レコードを表示します。
    • ADBQuickStart.javaを修正して、ADB接続情報を含めます。

      • DB_USER: Autonomous Databaseの作成時にデフォルトで作成されるユーザーであるADMINを使用することができます。(別のADBユーザーを作成した場合は、そのユーザーを代わりに使用することができます。)
      • DB_PASSWORD: データベース・ユーザのパスワードを使用します。ADMINユーザーとして接続する場合は、Autonomous Databaseのプロビジョニング中に Create Autonomous Database ステップで選択したパスワードを設定します。セキュリティ上の理由から、サンプルを実行する際にはコンソールからパスワードを入力する必要があります。
      • DB_URL: Autonomous Databaseの「DB Connection」タブをクリックします。「Connection Strings」ダイアログ・ボックスで、ドロップダウン・メニューから「TLS」を選択し、要件に応じた適切な接続文字列をコピーします。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="enter_it_from_console"

    • ADBQuickStart.javaへの変更の保存
    • トラブルシューティングおよびデバッグ: エラーが発生した場合は、「トラブルシューティングのヒント」ページで役立つヒントをご確認ください。

    前提条件(相互TLS)

    すべて開く すべて閉じる
  • 1.Autonomous Database(ADB)インスタンスのプロビジョニング

    Oracle Autonomous Database(ADB)へのアクセス権を取得します。まだADBインスタンスをプロビジョニングしていない場合は、以下のリンクをクリックしてADBインスタンスの手順を参照してください。

    ADMINユーザーで使用したパスワードをお忘れのないようご注意ください。このデモではADMINユーザーを使用しますが、SQLDeveloper かSQL Developer Webコンソールを使用して他のデータベース・ユーザーを作成することをお勧めします。

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

      Autonomous Databaseの作成後、以下の手順に従ってOracle Cloud Consoleからクライアント資格情報をダウンロードします。クライアントの認証情報(wallet_[dbname].zip)には、要件となるウォレット・ファイルとtnsnamea.ora が含まれており、相互TLSを提供し、認証と暗号化のセキュリティを強化します。
    • Oracle Cloud Consoleから、Oracle Autonomous DatabaseインスタンスのAutonomous Database Detailsページに移動します。
    • DB Connectionボタンをクリックします。新しいウィンドウが表示されます。
    • Download Walletボタンをクリックします。「Wallet Type」は「Instance Wallet」のままにします。
    • Passwordフィールドにウォレットのパスワードを入力し、Confirm passwordフィールドでパスワードを確認します。次に、Downloadボタンをクリックします。パスワードは1文字以上、数字1文字または特殊文字1文字を含む、8文字以上の長さである必要があります。
    • クライアント認証情報のzipファイル(wallet_[dbname].zip)を安全なディレクトリに保存し、解凍します。このディレクトリの場所は後で必要になります。
  • 3.JDK8以上のインストール

    JDK81 または それ以降のバージョンのJDKをダウンロードしてください。

    1 "java -version"を使用してインストールしたJDKのバージョンを確認します。"java -jar ojdbc8.jar"を使用してJDBCドライバのバージョンを確認します。

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

    • GithubからADBQuickStart.javaをダウンロードします。このサンプル・アプリケーションは販売履歴(SH)サンプル・スキーマを使用し、SH.CUSTOMERS表から20レコードを表示します。
    • ADBQuickStart.javaを修正して、ADB接続情報を含めます。

      • DB_USER: Autonomous Databaseの作成時にデフォルトで作成されるユーザーであるADMINを使用することができます。(別のADBユーザーを作成した場合は、そのユーザーを代わりに使用することができます。)
      • DB_PASSWORD: データベース・ユーザのパスワードを使用します。ADMINユーザーとして接続する場合は、Autonomous Databaseのプロビジョニング中に Create Autonomous Database ステップで選択したパスワードを設定します。セキュリティ上の理由から、サンプルを実行する際にはコンソールからパスワードを入力する必要があります。
      • DB_URL:ネットサービス名(別名TNSエイリアス)DBName_medium を入力します。ここでのDBName は Autonomous Databaseのプロビジョニング中のCreate Autonomous Database ステップで入力されたデータベース名です。利用可能なネット サービス名は、クライアント資格情報の zip ファイルの一部である tnsnames.ora ファイルで確認することができます。
        TNS_ADMINは、Autonomous Database (ADB)のクライアント認証情報を解凍した場所を指している必要があります。
      • 例: DB_URL = "jdbc:oracle:thin:@DBName_medium?TNS_ADMIN=/Users/test/wallet_DBName" DB_USER="ADMIN" and DB_PASSWORD="enter_it_from_console"

    • ADBQuickStart.javaへの変更の保存
    • トラブルシューティングおよびデバッグ: エラーが発生した場合は、「トラブルシューティングのヒント」ページで役立つヒントをご確認ください。

    Mavenプロジェクト

    すべて開く すべて閉じる
  • 1.Mavenプロジェクトの設定

    • 前提条件: 前提条件セクションのすべてのステップを完了するようにしてください。

    • Mavenプロジェクトの作成: Apache Maven をダウンロードし、mvn コマンドを使用する前にPATHを設定してください。以下のMavenコマンドを使用して、プロジェクトを作成します。

      
      
      mvn archetype:generate -DgroupId=com.oracle.jdbctest -DartifactId=jdbc-test-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
      
    • ADBQuickStart.javaをsrc ディレクトリにコピー : ADBQuickStart.javasrc/main/java/com/oracle/jdbctestディレクトリにコピーしてください。

    • pom.xml を以下の変更で修正:
      依存関係としてOracle JDBCドライバを追加します。 ノート: ojdbc8-production は、Oracle JDBCドライバ(ojdbc8.jar )と、ucp.jar (クライアント側の接続プールとしてUCPを使用するために必要なjarです)、 oraclepki.jar、osdt_core.jar、osdt_cert.jar (これらのjarは、Autonomous Databaseに接続する際にOracle Walletを使用するために必要です)などをダウンロードします。詳細については、 Maven Central Guide をご参照ください。

      
      
      <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>
      
      
      
  • 2. サンプルJavaプログラムの構築と実行

    pom.xml が存在するディレクトリにあることを確認してください。

    • Javaコードのクリーンアップとコンパイル: 次のコマンドを使用します。

      
      
      mvn clean
      
      
      
      mvn compile
      
    • サンプルJavaプログラムの実行

      
      
      mvn exec:java -Dexec.cleanupDaemonThreads=false -Dexec.mainClass="com.oracle.jdbctest.ADBQuickStart"
      
    • 出力例:

      下のスクリーンショットのように、問合せ対象の行がデータベースから返され、「Congratulations! You have successfully used Oracle Autonomous Database」というメッセージが表示されます。
      ノート: ファイアウォールの内側からADBに接続すると、接続タイムアウト・エラーが発生する可能性があります。このサンプルを実行している間はファイアウォールの外にいることを確認するか、HTTPSプロキシを使用するようにtnsnames.oraファイルを更新してください。ADB ドキュメントの "JDBC Thin Connections with an HTTP Proxy" セクションで、この方法の詳細をご覧ください。


    Gradleプロジェクト

    すべて開く すべて閉じる
  • 1. Gradleプロジェクトの設定

    • 前提条件: 前提条件セクションのすべてのステップを完了するようにしてください。
    • Gradleプロジェクトの作成 : Gradle Guide にある指示に従って、Gradle のダウンロードとビルドを行います。gradle コマンドを使う前に、PATH を設定するようにしてください。まず最初に、以下のコマンドでgradleプロジェクトを作成します。「生成するプロジェクトの種類を選択する」で「2: アプリケーション」を選択していることを確認してください。また、「Source package (default: temp):」には com.oracle.jdbctest を使用します。

      
      
      gradle init 
      
    • ADBQuickStart.javaをsrc ディレクトリにコピー :ADBQuickStart.javasrc/main/java/com/oracle/jdbctestディレクトリにコピーしてください。

    • 次の変更でbuild.gradle を変更します。

      • リポジトリとしてmavenCentral()を追加します
      • Oracle JDBCドライバを依存関係として追加します。
        ノート: ojdbc8-production は、Oracle JDBCドライバ(ojdbc8.jar )と、ucp.jar (クライアント側の接続プールとしてUCPを使用するために必要なjarです)、oraclepki.jar, osdt_core.jar, osdt_cert.jar (これらのjarは、Autonomous Databaseに接続する際にOracle Walletを使用するために必要です)などをダウンロードします。詳細については、 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
      }
       
  • 2.Gradleアプリケーションの構築および実行

    build.gradle が存在するディレクトリにいることを確認してください。

    • Javaコードのコンパイル: 以下のコマンドを使用します。

      
      
      ./gradlew build
      
    • サンプルJavaプログラムの実行

      
      
      ./gradlew run
      
    • 出力例:

      下のスクリーンショットのように、問合せ対象の行がデータベースから返され、「Congratulations! You have successfully used Oracle Autonomous Database」というメッセージが表示されます。
      ノート: ファイアウォールの内側からADBに接続すると、接続タイムアウト・エラーが発生する可能性があります。このサンプルを実行している間はファイアウォールの外にいることを確認するか、HTTPSプロキシを使用するようにtnsnames.oraファイルを更新してください。ADB ドキュメントの "JDBC Thin Connections with an HTTP Proxy" セクションで、この方法の詳細をご覧ください。


    Eclipse

    すべて開く すべて閉じる
  • 1.Mavenプロジェクトの設定

    • 前提条件: 前提条件セクションのすべてのステップを完了するようにしてください。

    • Mavenプロジェクトの作成:

      • 「ファイル」→「新規」→「Mavenプロジェクト」を選択します。maven archetypeを使用するか、'Create simple project (skip archetype selection)' をチェックします。
      • MavenプロジェクトのGAVを選択します:これらはプロジェクトのpom.xml に表示されます。
        グループID: com.oracle
        アーティファクトID: ADBquickstart
        バージョン: 0.0.1-SNAPSHOTのままにします

    • ADBQuickStart.javaの作成: src/main/java を右クリックして、「新規」→「クラス」をクリックします。次の値を入力します。
      パッケージ: com.oracle.jdbctest
      名前: ADBQuickStartと「終了」をクリックします。
      ADBQuickStart.javaの内容を、この新しいファイルにコピーするようにしてください。

    • pom.xml を以下の変更で修正:
      依存関係としてOracle JDBCドライバを追加します。 ノート: ojdbc8-production は、Oracle JDBCドライバ(ojdbc8.jar )と、ucp.jar (クライアント側の接続プールとしてUCPを使用するために必要なjarです)、 oraclepki.jar、osdt_core.jar、osdt_cert.jar (これらのjarは、Autonomous Databaseに接続する際にOracle Walletを使用するために必要です)などをダウンロードします。詳細については、 Maven Central Guide をご参照ください。

      
      
      <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>
      
      
      
  • 2. サンプルJavaプログラムの構築と実行

    Javaコードにコンパイル・エラーがないこと、最新のJDKバージョンを使用していることを確認してください。

    • サンプルJavaプログラムを実行します: ADBQuickStart.java --> 名前を付けて実行-->Javaアプリケーションを右クリックします。
      データベース・パスワードの入力を求めるプロンプトが表示され、パスワードを入力すると結果が表示されます。

    • 出力例:

      下のスクリーンショットのように、問合せ対象の行がデータベースから返され、「Congratulations! You have successfully used Oracle Autonomous Database」というメッセージが表示されます。
      ノート: ファイアウォールの内側からADBに接続すると、接続タイムアウト・エラーが発生する可能性があります。このサンプルを実行している間はファイアウォールの外にいることを確認するか、HTTPSプロキシを使用するようにtnsnames.oraファイルを更新してください。ADB ドキュメントの "JDBC Thin Connections with an HTTP Proxy" セクションで、この方法の詳細をご覧ください。


    IntelliJ

    すべて開く すべて閉じる
  • 1.Mavenプロジェクトの設定

    • 前提条件: 前提条件セクションのすべてのステップを完了するようにしてください。
    • Mavenプロジェクトの作成:

      • 「ファイル」→「新規作成」→「プロジェクト」をクリック
      • 左側で「Maven」を選択し、最新バージョンのJDKを「Project SDK」として選択します。「Next」をクリックします。
      • 「名前」を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を使用するために必要なjarです)、 oraclepki.jar、osdt_core.jar、osdt_cert.jar (これらのjarは、Autonomous Databaseに接続する際にOracle Walletを使用するために必要です)などをダウンロードします。詳細については、 Maven Central Guide をご参照ください。

      
      
      <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>
      
      
      
  • 2. 構築とADBQuickStartの実行

    • Java コードのコンパイル: Right click on ADBQuickStart.java --> Build Module 'ADBQuickStart'を右クリックします。コンパイル・エラーがないことを確認します。

    • サンプル Javaプログラムを実行します: ADBQuickStart.java を右クリック-> --> Run 'ADBQuickStart.main()'を実行します。コンソールでデータベースのパスワードを入力してください。

    • 出力例:

      下のスクリーンショットのように、問合せ対象の行がデータベースから返され、「Congratulations! You have successfully used Oracle Autonomous Database」というメッセージが表示されます。
      ノート: ファイアウォールの内側からADBに接続すると、接続タイムアウト・エラーが発生する可能性があります。このサンプルを実行している間はファイアウォールの外にいることを確認するか、HTTPSプロキシを使用するようにtnsnames.oraファイルを更新してください。ADB ドキュメントの "JDBC Thin Connections with an HTTP Proxy" セクションで、この方法の詳細をご覧ください。


    ビルド・ツールなし

    すべて開く すべて閉じる
  • 1.JDBCドライバおよびその他のjarのダウンロード

    • 前提条件のセクションにある全てのステップを完了するようにしてください。

    • OTNからojdbc8-full.tar.gzの最新の19cバージョンをダウンロードし、内容をクラスパスに解凍します。
      ノート: ojdbc8-full.tar.gz には、最新のJDBCドライバojdbc8.jarUCP.jar (UCPをクライアント側の接続プールとして使用するには必須のjar)、oraclepki.jar, osdt_core.jar, osdt_cert.jar (これらのjarは、Autonomous Databaseへの接続時にOracleウォレットを使用するために必要です)が含まれています。

  • 2. サンプルJavaプログラムの構築と実行

    • Javaプログラムをコンパイルする
      クラスパスに要件jarの正確なパスを指定するようにしてください。

      
       javac -classpath ./lib/ojdbc8.jar:./lib/ucp.jar:/lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar com/oracle/jdbctest/ADBQuickStart.java
      
    • サンプルJavaプログラムを実行する
      クラスパスに要件jarの正確なパスを指定するようにしてください。

      
       java -classpath ./lib/ojdbc8.jar:./lib/ucp.jar:/lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. com.oracle.jdbctest.ADBQuickStart
      
    • 出力例:

      下のスクリーンショットのように、問合せ対象の行がデータベースから返され、「Congratulations! You have successfully used Oracle Autonomous Database」というメッセージが表示されます。
      ノート: ファイアウォールの内側からADBに接続すると、接続タイムアウト・エラーが発生する可能性があります。このサンプルを実行している間はファイアウォールの外にいることを確認するか、HTTPSプロキシを使用するようにtnsnames.oraファイルを更新してください。ADB ドキュメントの "JDBC Thin Connections with an HTTP Proxy" セクションで、この方法の詳細をご覧ください。