JDBC ドライバを使用して Spanner Omni に接続する

このドキュメントでは、Spanner JDBC ドライバを使用して Java アプリケーションを Spanner Omni に接続し、SQL ステートメントを実行する方法について説明します。

Java Database Connectivity(JDBC)は、アプリケーションがリレーショナル データベースと一貫した方法でやり取りするための標準 Java API です。Spanner JDBC ドライバは、Spanner と同様に Spanner Omni で動作します。

JDBC ドライバを使用すると、標準の JDBC 互換ツールとライブラリを Spanner Omni で活用できます。

Spanner Omni JDBC 接続は、プレーン テキスト、TLS、認証情報付き TLS、mTLS をサポートしています。

詳細については、Spanner ドキュメントの JDBC で Spanner を使ってみるをご覧ください。

始める前に

JDBC ドライバで Spanner Omni を使用するには、Spanner JDBC ドライバ バージョン 2.41.0 以降を使用します。

部品構成表(BOM)なしで Maven を使用する場合は、pom.xml ファイルの依存関係に次のものを追加します。

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-spanner-jdbc</artifactId>
  <version>2.41.0</version>
</dependency>

接続 URL の考慮事項

Spanner Omni はGoogle Cloud プロジェクトに直接接続されていないため、JDBC 接続 URL に projects/name コンポーネントは必要ありません。同様に、各 Spanner Omni デプロイには、すでに作成されている単一のインスタンス(instances/default)があるため、instances/name コンポーネントは省略可能です。

JDBC ドライバを Spanner ではなく Spanner Omni に接続するには、接続 URL に ;type=omni プロパティを追加します。

Spanner Omni 接続を確立する

次の例は、サポートされている各セキュリティ構成で Spanner JDBC ドライバを使用して Spanner Omni との接続を確立する方法を示しています。

書式なしテキスト

プレーン テキスト接続を確立するには、次のような接続 URL を使用します。

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;usePlainText=true;type=omni";
try (java.sql.Connection connection = DriverManager.getConnection(url)) {
  try (ResultSet rs = connection.createStatement().executeQuery("SELECT * FROM Singers")) {
    while (rs.next()) {
      System.out.print(rs.getLong(1) + "\t");
      System.out.println(rs.getString(2));
    }
  }
} catch (Exception e) {
  System.out.println(e.getMessage());
}

TLS

TLS 接続を確立するには、Java トラストストアを構成するで説明されているように、CA 証明書を Java トラストストアに追加するか、アプリケーションの実行時にカスタム トラストストアを指定します。JDBC URL に追加の認証パラメータは必要ありません。

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni";

認証情報を使用した TLS

ユーザー名とパスワード認証で TLS 接続を確立するには、Java トラストストアを構成するの説明に従って、CA 証明書を Java トラストストアに追加し、JDBC URL で username プロパティと password プロパティを指定します。

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;username=USERNAME;password=PASSWORD";

mTLS

mTLS 接続を確立するには、Java Truststore を構成するで説明されているように、CA 証明書を Java Truststore に追加し、JDBC URL で clientCertificate パラメータと clientKey パラメータを指定します。クライアントの秘密鍵は、Java SDK の mTLS の手順で説明されているように、Java 準拠の PKCS#8 形式である必要があります。

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY";