Spanner PostgreSQL 言語データベースでは、PostgreSQL JDBC ドライバと Spanner JDBC ドライバの両方を使用できます。このページでは、これらのドライバのいずれかを使用してデータベースに接続する方法について説明します。
PostgreSQL JDBC ドライバ
このセクションでは、PostgreSQL JDBC ドライバを Spanner の PostgreSQL 言語データベースに接続する方法について説明します。JDBC は PostgreSQL の標準 Java ドライバです。
PostgreSQL JDBC ドライバを使用するには、PGAdapter を使用して PostgreSQL ネットワーク プロトコルと Spanner ネットワーク プロトコルの変換を行う必要があります。PGAdapter を依存関係として追加し、アプリケーションを使用してプロセス内で実行できます。
- PGAdapter と PostgreSQL JDBC ドライバを依存関係としてアプリケーションに追加します。
- アプリケーションで PGAdapter を処理中に開始します。
OptionsMetadata.Builder builder = OptionsMetadata.newBuilder() .setProject("my-project") .setInstance("my-instance") .setPort(5432); ProxyServer server = new ProxyServer(builder.build()); server.startServer(); server.awaitRunning();
次のように置き換えます。
- my-project: PostgreSQL 方言のデータベースが存在する Google Cloudプロジェクトのプロジェクト ID。
- my-instance: PostgreSQL 言語データベースが配置されている Spanner インスタンスの ID。
- 5432: PGAdapter が実行されているポート番号。動的に割り当てられたポートを使用するには、ポートを 0 に設定します。
- PostgreSQL JDBC ドライバが読み込まれていることを確認します。
Class.forName("org.postgresql.Driver"); try (Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/my-database")) { try (ResultSet resultSet = connection.createStatement().executeQuery("select 'Hello world!' as hello")) { while (resultSet.next()) { System.out.printf( "Greetings from Cloud Spanner PostgreSQL: %s\n", resultSet.getString(1)); } } }
次のように置き換えます。
- localhost: PGAdapter が実行されているホスト。
- 5432: PGAdapter が実行されているポート番号。
- my-database: PostgreSQL 方言データベースの名前。
PGAdapter GitHub リポジトリには、 動作するサンプル アプリケーションが含まれています。
Spanner JDBC ドライバ
このセクションでは、Spanner JDBC ドライバを使用して PostgreSQL 言語データベースに接続する方法について説明します。
- Spanner JDBC ドライバを依存関係としてアプリケーションに追加します。
- Spanner JDBC 接続 URL を使用して PostgreSQL 言語データベースに接続します。
try (Connection connection = DriverManager.getConnection( "jdbc:cloudspanner:/projects/my-project/instances/my-instance/databases/my-database")) { try (ResultSet resultSet = connection.createStatement().executeQuery("select 'Hello world!' as hello")) { while (resultSet.next()) { System.out.printf( "Greetings from Cloud Spanner PostgreSQL: %s\n", resultSet.getString(1)); } } }
次のように置き換えます。
- my-project: PostgreSQL 方言のデータベースが存在する Google Cloudプロジェクトのプロジェクト ID。
- my-instance: PostgreSQL 言語データベースが配置されている Spanner インスタンスの ID。
- my-database: PostgreSQL 方言データベースの名前。
ドライバは、指定されたデータベースの SQL 言語を自動的に検出します。接続 URL の言語パラメータは必須ではありません。
次のステップ
- PGAdapter について詳細を確認する。
- PGAdapter GitHub リポジトリの PGAdapter - JDBC 接続オプションで、PostgreSQL JDBC ドライバの接続オプションの詳細について確認する。