JDBC 経由でのアクセス¶
JDBC (Java Database Connectivity) は、使用するデータベース管理システムを問わず、リレーショナルデータベースに対してステートメントを実行できるようにする Java API です。
Denodo は、JDBC 4.1 API (Java Database Connectivity) の主要な機能を実装する JDBC タイプ 4 ドライバーを提供しています。つまり、ドライバーはプラットフォームに依存しません。
Denodo JDBC ドライバーは、以下の場所から取得します。
Denodo Community (https://community.denodo.com/drivers/jdbc/)。ダウンロードするには、このサイトに登録する必要があります (登録は誰でも可能)。
Denodo サーバーにインストールされている更新プログラムのバージョンをダウンロードします。接続している Denodo サーバーのバージョンを確認するには、Design Studio でサーバーにログインし、 [File] メニュー > [About...] をクリックして、[VDP server] ([installed updates] の下) を探します。
または、Denodo Platform のインストール (
<DENODO_HOME>/tools/client-drivers/jdbc/vdp-jdbcdriver-core/denodo-vdp-jdbcdriver.jar
) から取得します。
Java のバージョン
この JDBC ドライバーは、Java 8、9、10、11、および 17 と互換性があります。
ドライバークラスの名前
このドライバーのクラス名は次のとおりです。
com.denodo.vdp.jdbc.Driver
接続 URL
データベース URL の構文は次のとおりです。
jdbc:denodo://<hostname>[:<port>]/[<database>][?<paramName>=<paramValue>[&<paramName>=<paramValue>]*]
<port>
: オプション。入力しない場合、ドライバーは「9999」 (Virtual DataPort のデフォルトポート) を想定します。<database>
: オプション。
例:
jdbc:denodo://denodo-server.acme.com?queryTimeout=100000&userAgent=myApplication
これは URL であるため、データベース名とパラメータの値は URL エンコードする必要があります。つまり、データベースの名前にスペースや非 ASCII 文字などが含まれている場合です。たとえば、データベースの名前が「テスト」の場合、データベースへの接続 URL は次のようになります。
jdbc:denodo://localhost:9999/%E3%83%86%E3%82%B9%E3%83%88?queryTimeout=100000&userAgent=myApplication
下位互換性のため、ドライバーでは「jdbc:denodo」以外に接頭辞「jdbc:vdb」もサポートしています。
下位互換性
Virtual DataPort バージョン 9 には、JDBC ドライバーとバージョン 8.0 の ODBC ドライバーで接続できます。
Virtual DataPort バージョン 8.0 には、JDBC ドライバーとバージョン 9 の ODBC ドライバーで接続できます。
注釈
ドライバーの下位互換性と上位互換性により、9 へのアップグレードプロセスがさらに容易になっています。ただし、9 へのアップグレードを完了し、8.0 サーバーを使用しない場合は、バージョン 9 のドライバーのみの使用を強くお勧めします。改良は最新バージョンのドライバーに加えられる可能性が高く、以前のバージョンには加えられません。
このトピックの詳細については、「 Virtual DataPort サーバーとそのクライアントとの間の下位互換性 」のページを参照してください。
このドライバーの機能
以下に、Virtual DataPort JDBC ドライバーがサポートする JDBC 仕様の特徴の一部を示します。
サポートされているデータ型は、『 VQL ガイド 』に定義されています (すべての基本型のサポートと、array 型および register 型のフィールドのサポートを含みます)。
データのクエリ、挿入、更新、および削除を行うためのステートメントのほか、データソースやビューなどの新しいエレメントを作成するためのステートメントの実行。
メタデータ記述ステートメントおよびサーバーカタログエレメントのリストのサポート。
PreparedStatements
のサポート。java.sql.Statement
クラスのcancel()
メソッドによる、現在のステートメント実行のキャンセルのサポート。クエリがキャンセルされると、Virtual DataPort サーバーはデータソースとキャッシュへの現在のアクセスをすべてキャンセルします。cancel
メソッドの呼び出し後でも、ソースアクセスのキャンセルが有効になる前に結果が取得されている場合、サーバーは一部の結果を返すことができます。そのため、クエリをキャンセルしても、使用されているResultSet
が閉じられるわけではありません。CALL
ステートメントによるストアドプロシージャの呼び出しコマンドの一括送信のサポート
Virtual DataPort によって返される
ResultSet
オブジェクトは更新不可 (CONCUR_READ_ONLY
) であり、前方移動のみ (TYPE_FORWARD_ONLY
) のカーソルを持ちます。さらに、ResultSet
オブジェクトは現在のトランザクションがコミットされると閉じられます (CLOSE_CURSORS_AT_COMMIT
)。このドライバーは、
java.sql.Statement
クラスのResultSet getGeneratedKeys()
メソッドを実装します (「 IDU ステートメントによる自動生成キーの取得 」を参照)。タイムスタンプ、日付、時刻のリテラルの JDBC エスケープ構文のサポート (「 日時リテラルを使用したクエリ 」を参照)。