JDBC Driver Guide (v11)

JDBC プログラミング作業

ここでは、JDBC プログラミングの重要なコンセプトに焦点を当てます。

接続文字列の概要

JDBC ドライバーは、データベースの接続に URL を必要とします。Pervasive JDBC ドライバー用の URL 構文は以下のとおりです。

jdbc:pervasive://machinename:port number/datasource[;encoding=;encrypt=;encryption=]

machinename は、Pervasive PSQL サーバーを実行するマシンのホスト名または IP アドレスです。

port number は、Pervasive PSQL サーバーが受信を行うためのポートです。このポートのデフォルト値は 1583です。

datasource は、アプリケーションが使用する予定の Pervasive PSQL サーバー上の ODBC エンジン データ ソースの名前です。

encoding= は、文字エンコードです。これは指定したコード ページを介して読み込んだデータにフィルターをかけることができます。これによりデータが正しく書式設定およびソートされます。

encrypt= は、JDBC ドライバーが暗号化ネットワーク通信(ワイヤ暗号化とも呼ばれます)を使用する必要があるかどうかを決定します。

encryption= は、JDBC ドライバーが許可する暗号化の最低レベルを指定します。


メモ

JDBC アプリケーションを実行するためには、Pervasive PSQL v11 SP1 エンジンは指定したホストで実行されている必要があります。


接続文字列の要素

JDBC を使用して Pervasive PSQL データベースに接続する方法を次に示します。

ドライバー クラスパス

com.pervasive.jdbc.v2 

ドライバーを読み込むステートメント

Class.forName("com.pervasive.jdbc.v2.Driver"); 

URL

jdbc:pervasive://server:port/DSN[;encoding=;encrypt=;encryption=]

または

jdbc:pervasive://server:port/DSN[?pvtranslate=&encrypt=&encryption=]

引数
説明
server
ID または URL を使用したサーバー名。
port
リレーショナル インターフェイスのデフォルトのポートは 1583 です。ポートが指定されない場合、このデフォルトが使用されます。
DSN
通常の ODBC メソッドを使用してサーバーで設定する DSN の名前。
encoding
文字エンコードを使用するを参照してください。
encrypt
JDBC ドライバーが暗号化ネットワーク通信(ワイヤ暗号化とも呼ばれます)を使用する必要があるかどうかを決定します。(『Advanced Operations Guide』のワイヤ暗号化を参照してください。)
値:always(常時)never(しない)
このオプションを指定しなかった場合、ドライバーにはサーバーの設定が反映されます。これは、"必要な場合" と同等です。
値 "always" を指定した場合、JDBC ドライバーは暗号化を使用します。ただし、サーバーがワイヤ暗号化を許可していない場合はエラーを返します。値 "never" を指定した場合、JDBC ドライバーは暗号化を使用しません。サーバーがワイヤ暗号化を要求した場合はエラーを返します。
JDBC ドライバーでワイヤ暗号化を使用するには、別の JAR ファイルが classpath に必要となります。この JAR ファイル jpscs.jar はデフォルトでインストールされ、Java Cryptography Extensions(JCE)を使用します。
encryption
JDBC ドライバーが許可する暗号化の最低レベルを決定します。
値:low(低)、medium(中)、high(高)
デフォルト:medium(中)
これらの値はそれぞれ 40 ビット、56 ビット、および 128 ビット暗号化に対応しています。
次の例では、JDBC ドライバーは UTF-8 エンコードを使用し、常に暗号化を要求し、最低でも "低" レベルの暗号化を必要とすることを指定しています。そうでない場合はエラー コードを返します。
jdbc:pervasive://host/demodata?encoding=UTF-8&encrypt= always&encryption=low

JDBC 接続文字列の例

JDBC ドライバーを使用して Pervasive データベースに接続する方法を次に示します。

// Pervasive PSQL JDBC ドライバーを読み込みます。 
Class.forName("com.pervasive.jdbc.v2.Driver") 
 
// Pervasive JDBC URL 構文: 
// jdbc:pervasive://<ホスト名または IP アドレス>: 
//   <ポート番号(デフォルト 1583)>/<ODBC エンジン DSN> 
 
String myURL = "jdbc:pervasive://127.0.0.1:1583/
demodata"; 
try 
{ 
 
  // m_Connection = DriverManager.getConnection(myURL, 
username, password); 
} 
catch(SQLException e) 
{ 
  e.printStackTrace(); 
 
  // その他の例外処理 
} 

文字エンコードを使用する

Java は文字列にワイド文字を使用します。文字データはデータベース エンジンとやり取りするためにコード ページに変換する必要があります。文字データは、ドライバー マネージャーに渡す接続文字列の中で"encoding" 属性を使用して指定します。

encoding 属性

encoding 属性は、文字データの変換に使用する特定のコード ページを指定します。encoding 属性をが指定されない場合は、クライアント マシンに用いられているデフォルトのオペレーティング システムのコード ページが使用されます。これはクライアントとサーバーが同じオペレーティング システムのエンコードを使用していることが前提です。

文字エンコードの使用例

public static void main(String[] args) 
{ 
  // latin 2 エンコードを指定 
  String url = "jdbc:pervasive://MYSERVR:1583/
SWEDISH_DB;encoding=cp850"; 
  try 
  { 
    Class.forName("com.pervasive.jdbc.v2.Driver"); 
    Connection conn = 
DriverManager.getConnection(url); 
    Statement stmt = conn.createStatement(); 
    ResultSet rs = stmt.executeQuery("select * from 
SwedishTable"); 
    rs.close(); 
    stmt.close(); 
    conn.close(); 
  } 
  catch(Exception e) 
  { 
    e.printStackTrace(); 
  } 
} 

文字エンコードの注意点

1 つのデータベースに 2 つの異なるエンコードを使用したテーブルがある場合、2 つの別個の接続を確立する必要があります。データベース エンジンは 1 接続につき 1 つのエンコードしか識別しません。このため接続ごとに別個のエンコードを指定する必要があります。

Pervasive JDBC ドライバーは、コード ページのための Java ネイティブ サポートを使用します。サポートされるコード ページのリストは Sun の Web サイト java.sun.com から入手できます。


環境設定の方法

Web ベース アプリケーションの開発 (JDBC アクセス方法)