このページでは、Google が推奨、作成している Spanner JDBC ドライバについて説明します。GoogleSQL 言語のみの場合、Simba によって作成された JDBC ドライバもあります。
Google は CSpanner 用のオープンソース JDBC ドライバを提供しています。オープンソースのドライバにより、アプリケーションで Java Database Connectivity(JDBC)API を使用して Spanner にアクセスできるようになります。
このページでは、Spanner JDBC ドライバに関するよくある質問への回答を示します。ドライバの使用方法については、JDBC を GoogleSQL 言語データベースに接続するをご覧ください。
このドライバを使用して、データ操作言語(DML)とデータ定義言語(DDL)のステートメントを発行できますか?
はい、このドライバは DML と DDL のステートメントをサポートしています。
このドライバは Spanner の親子テーブルの関係またはインターリーブされたテーブルの関係をどのように処理しますか?
インターリーブされたテーブルの関係は、JDBC の外部キー関係にマップされます。Spanner は、親とインターリーブされた子テーブルのレコードの主キーを、関連付けられている親テーブルのレコードの主キーに依存させます。Spanner では、子テーブルの主キーの親主キー部分が、親テーブルの主キーを参照する外部キーとして定義されます。したがって、インターリーブされたテーブル関係は、DatabaseMetaData
の外部キーメタデータ呼び出しを使用してナビゲートできます。詳細については、スキーマについてをご覧ください。
このドライバは、Spanner のすべてのデータ型をサポートしていますか?
Spanner JDBC ドライバは Spanner の STRUCT
データ型をサポートしていません。他のすべての型には適切なマッピングがあります。
このドライバはインデックスをサポートしていますか?
はい。適切なクエリ構文を使用して、SELECT
クエリでインデックスを使用できます。オープンソースのドライバで、インデックスを DDL ステートメントとして作成および変更することもできます。特定のインデックスに関する情報にアクセスするには、DatabaseMetaData.getIndexInfo()
メソッドを使用します。
このドライバはパラメータ化されたクエリをサポートしていますか?
はい、このドライバは位置によるパラメータ化をサポートしています。
独自の接続プールを用意する必要がありますか?
Spanner JDBC ドライバは、開かれているすべての接続と、それらの接続を開くために使用された接続プロパティを追跡することで、プールを内部的に処理します。たとえば、既存の接続と同じ接続プロパティを持つ新しい接続が必要な場合は、これらのプール接続が再利用されます。接続は、直近 60 秒間使用されていない場合、自動的に閉じられます。
独自のプールを提供する場合は、任意の標準 JDBC 接続プールを使用できます。ドライバクラス com.google.cloud.spanner.jdbc.JdbcDriver
を使用するようにプールを構成し、有効な Spanner JDBC 接続 URL を設定します。
他に、このドライバを使用するときに考慮する必要のある制限はありますか?
このドライバの機能には、基になっているシステムによって定義される制限があります。Spanner の割り当てと上限をご覧ください。
このドライバのサポートを受けるにはどうすればよいですか?
サポート オプションについては、サポートページをご覧ください。
次のステップ
JDBC を GoogleSQL 言語データベースに接続する方法を学習する。