HOME

JDBC レファレンス

2005.07.28

Cloudscape には、ビルドインのJDBCドライバが含まれています。 そのJDBCドライバの APIは、Cloudscape データベースに対してのみ有効です。 ドライバは、ネイティブプロトコルを使用するドライバで、Sunで定義される タイプ 4 のドライバです。

このJDBCドライバは、Sunに定義された標準のJDBCインターフェイスを実装しています。 Cloudscapeと同一のJVMのアプリケーションから呼び出される場合、 JDBCドライバはCloudscape データベースへの組み込みモードでの接続をサポートします。 データベースへのネットワーク経由の要求はアクセスできません。 クライアント/サーバモードの場合、クライアントアプリケーションはJDBCリクエストをJDBCサーバへネットワーク経由で送信します。 同じJVMで動いているCloudscapeサーバは順番に、リクエストをCloudscapeへ組み込みJDBCドライバを通して送信します。

JDBC 説明
java.sql.Driver

JDBC はいくつかの異なった方法をドライバのロードのために提供します。

Embedded Database
Cloudscape のローカルJDBCドライバクラスは、 org.apache.derby.jdbc.EmbeddedDriver です。
Cloudscape ドライバクラスをいくつかの方法でインスタンス化できます。 java.sql.Driver インターフェースを通して、直接ドライバクラスを使用しないでください。 DriverManager クラスを使用して、コネクションを生成してください。

Class.forName("org.apache.derby.jdbc.EmbeddedDriver")
この作法を推奨します。なぜなら同時に起動されたすべてのJVMについて、クラスがロードされることが保障されるからです。
new org.apache.derby.jdbc.EmbeddedDriver
Class.forName("org.apache.derby.jdbc.EmbeddedDriver") と同じです。ただし、この方法の場合、ドライバクラスがコンパイル時に参照可能となっている必要があります。
Class c = org.apache.derby.jdbc.EmbeddedDriver.class
これも、Class.forName("org.apache.derby.jdbc.EmbeddedDriver") と同じです。ただし、この方法の場合、ドライバクラスがコンパイル時に参照可能となっている必要があります。
System プロパティ jdbc.drivers に設定
コマンドラインもしくは、アプリケーションの内部で、Systemプロパティを設定します。appletでは、これはできません。
IBM Application Developer Kit JVMを起動する例
java -Djdbc.drivers=org.apache.derby.jdbc.EmbeddedDriver applicationClass

DriverManager に登録されたなかから取得された、jdbc:derby プロトコルを操作する実際のドライバは、 org.apache.derby.jdbc.EmbeddedDriver ではありません。このクラスは、単に必要なタイプのCloudscapeドライバを見つけ出し、 適切なCloudscapeドライバをロードします。

Cloudscape システムに、DriverManager から jdbc:derby プロトコルを使用して ドライバ(java.sql.Driver) もしくは、コネクション(java.sql.Connection) を取得するサポートされている唯一の方法は、getDrivergetConnection メソッドを呼び出すことです。

java.sql.DriverManger.getConnection

Java アプリケーションは、JDBC API が確立した Connection オブジェクトとしての接続を利用してデータベースに接続します。 標準的には、Connection オブジェクトは、 DriverManager.getConnection メソッドを、データベース接続URLを含んだ文字列を引き渡して、 呼びだすことによって得られます。 JDBC データベース接続URLは、データベースを特定する方法を提供します。

DriverManager.getConnction は、データベース接続URLの他に、引数として、Properties オブジェクトをひとつとることができます。 この Properties オブジェクトを使用して、データベース接続URLの属性を設定することができます。

ユーザ名とパスワードをあらわす文字列を与えることができます。与えられた場合、Cloudscape は、ユーザ認証機能が有効な場合、 それらが現在のシステムで有効かどうかをチェックします。 ユーザ名とパスワードを使用し、Cloudscapeは認証を行います。それにより、データベースにアクセスが認められているか、 およびデフォルトのスキーマが決定されます。 ユーザ名が与えられずに、接続が確立される場合、Cloudscpaeはデフォルトユーザ APP (デフォルトスキーマと同名)をセットします。 ユーザ名があたえられた場合、デフォルトスキーマはユーザ名と同一のスキーマになります。

Cloudscape Database Connection URL 構文

Cloudscape データベース接続URL の内容は、"Cloudscape 接続URLの属性" を参照

Embedded Database
組み込みデータベースのアプリケーションでの接続URLの構文は、
jdbc:derby: [subprotocol:][databasename][;attributes]*

jdbc:derby:
JDBCの用語として、cloudscape は、Cloudscape データベースへ接続する サブプロトコルです。 サブプロトコルでは、いつも cloudscape で変化しません。
subsubprotocol
subsubprotocol は、通常設定しません。設定するのは、Cloudscapeがデータベースをディレクトリや、クラスパスや、Jarファイルに、探す場合です。 それは、たいてい読み込み専用データベース等の、まれな場合です。
  • directory
  • classpath データベースは読み込み専用として扱われます。databaseName はスラッシュ"/"で始まる必要があります。 なぜなら、クラスパスディレクトリやアーカイブに対して相対的に参照する必要があるからです
  • jar データベースは読み込み専用として扱われます
jar: さらに、databaseName のまえの中間要素として、jar、zip ファイル名を付加する必要があります。
databaseName
存在するデータベースまたは作成するデータベースを databaseName で指定します。
単独でデータベース名を指定することができますが、相対もしくは絶対パスも使用できます。
"IBM Cloudscape Developer's Guide" の 第1章 "Standard Connections-Connecting to Databases in the File System" を参照してください。
attribute
0 以上の データベース接続URL属性を設定できます。
Cloudscape データベース接続URL の内容は、"Cloudscape 接続URLの属性" を参照