![]() |
![]() |
|
|
| |
WebLogic jDriver for Informixの使い方
この節では、WebLogic jDriver for Informix を設定および使用する方法について説明します。内容は以下のとおりです。
WebLogic jDriver for Informix とは
WebLogic jdriver for Informix は、Type 4 の pure-Java 2 層ドライバです。通信フォーマット レベルで独自のベンダ プロトコルを使用してデータベースに接続するので、クライアントサイド ライブラリは必要ありません。したがって、Type 2 の 2 層ドライバと違い、ネイティブ コールを作成せず、Java だけで記述されています。
ただし、Type 4 ドライバと Type 2 ドライバには共通点が 1 つあります。両方とも 2 層ドライバなので、どちらのドライバを使うクライアントも、データベースと接続するためには、ドライバをメモリにコピーする必要があるという点です。
WebLogic jDriver for Informix は、ResultSet の同時実行をサポートしています。つまり、1 つの ResultSet の接続を閉じてからでなくとも、別の ResultSet を開いて処理を行うことができます。ただし、ドライバは、ResultSet の同時実行とクライアントサイド キャッシングを同時にサポートすることはできません。
WebLogic jDriver for Informix は、Informix OnLine バージョン 7.x および 9.x を、7.x データ型に加えて、9.x INT8 および SERIAL8 データ型に関してサポートしています。
型のマッピング
次の表は、以下のマッピング方法を示します。
Informix DBMS への接続
この節では、Informix DBMS への接続手順のコーディングについて説明し、接続が確立される方法を示すサンプル コードを示します。
接続手順
以下の 3 段階の手順に従って、WebLogic jDriver for Informix を使用して Informix に接続するよう、アプリケーションを設定します。
Class.forName().newInstance()
を呼び出します。
java.sql.Driver
オブジェクトにキャストします。
次に例を示します。
Driver myDriver = (Driver)
Class.forName("weblogic.jdbc.informix4.Driver").newInstance();
java.util.Properties
オブジェクトを作成します。このオブジェクトは、ユーザ名、パスワード、データベース名、サーバ名、およびポート番号などの情報が入った名前と値の組み合わせを格納します。次に例を示します。
Properties props = new Properties();
props.put("user", "scott");
props.put("password", "secret");
props.put("db", "myDB");
props.put("server", "myHost");
props.put("port", "8659");
Driver.connect()
メソッドを呼び出すことで、JDBC の操作で不可欠となる JDBC 接続オブジェクトを作成します。このメソッドは、パラメータとしてドライバの URL と手順 2 で作成した java.util.Properties
オブジェクトを取ります。次に例を示します。
Connection conn =
myDriver.connect("jdbc:weblogic:informix4", props);
手順 1 と 3 では、JDBC ドライバを記述します。手順 1 では、ドライバの完全パッケージ名を使用します。ドットを使って区切ります。手順 3 では、URL(コロンで区切ります)を使ってドライバを識別します。URL には、weblogic:jdbc:informix4
という文字列を入れなければなりません。このほかに、サーバのホスト名やデータベース名などの情報を入れてもかまいません。
接続のサンプル
次のサンプル コードは、Properties オブジェクトを使って myHost
というサーバ上のmyDB
というデータベースに接続する方法を示します。
Properties props = new Properties();
props.put("user", "scott");
props.put("password", "secret");
props.put("db", "myDB");
props.put("server", "myHost");
props.put("port", "8659");
Driver myDriver = (Driver)
Class.forName("weblogic.jdbc.informix4.Driver").newInstance();
Connection conn =
myDriver.connect("jdbc:weblogic:informix4", props);
次のサンプルのように、db
、server
、および port
プロパティを server
プロパティにまとめることができます。
Properties props = new Properties();
props.put("user", "scott");
props.put("password", "secret");
props.put("server", "myDB@myHost:8659");
Driver myDriver = (Driver)
Class.forName("weblogic.jdbc.informix4.Driver").newInstance();
Connection conn =
myDriver.connect("jdbc:weblogic:informix4", props);
URL 内または Properties オブジェクト内に情報を提供する方法はさまざまです。ドライバの URL 内に渡される情報は、Properties オブジェクトに含まれている必要はありません。
Connection または Properties オブジェクトに設定可能な Informix 固有のその他のプロパティ
この節では、接続 URL または Properties オブジェクトに設定可能なその他の Informix 固有のプロパティについて説明します。これらのプロパティを使用すると、Informix 固有の環境をより自在に制御できます。詳細については、Informix のドキュメントを参照してください。
weblogic.informix4.login_timeout_secs=
seconds_to_wait
weblogic.informix4.delimited_identifiers=y
DELIMIDENT
を使用すると、ANSI SQL 区切り文字付き識別子を有効または無効にできます。デフォルトではオフ(n
)です。
weblogic.informix4.db_money=
currency
DBMONEY
を使用すると、通貨記号の表示を設定できます。現在、デフォルト値は $.
ですが、このプロパティを使ってオーバーライドできます。
weblogic.informix4.db_date=
dateformat
DBDATE
を使用すると、ユーザが日付の入力フォーマットを指定できるようになります。ユーザは、ログイン時に Informix DBDATE
環境変数を設定します。デフォルト値は Y4MD
です。このドライバは、2 桁の年(Y2
を含むフォーマット)をサポートしていません。この変数を使って、ResultSet.getString()
文で取得した日付を正しくフォーマットすることはできません。代わりに、ResultSet.getDate()
を使用して java.util.Date
オブジェクトを取得してから、日付をフォーマットします。
次のサンプル コードは、これらのプロパティを URL で使用する方法を示します。
jdbc:weblogic:informix4:mydb@host:1493
?weblogic.informix4.delimited_identifiers=y
&weblogic.informix4.db_money=DM
&weblogic.informix4.db_date=Y4MD
注意: URL は必ず 1 行で入力します。前述のサンプルでは、読みやすくするために複数の行に分けてあります。
URL 用の特殊文字の ?
と &
が使用されています。
次のサンプル コードは、これらのプロパティを Properties オブジェクトで使用する方法を示します。
Properties props = new Properties();
props.put("user", "scott");
props.put("password", "tiger");
props.put("weblogic.informix4.delimited_identifiers", "y");
props.put("weblogic.informix4.db_money", "DM");
Connection conn = myDriver.connect
(jdbc:weblogic:informix4:myDB@myHost:8659",props);
JDBC によるデータの操作
この節では、プログラムで以下の処理を実装するための基本手順について説明します。
これらは JDBC の基本的な手順であり、JDBC を使ってデータを操作するための基本を説明するためのものです。詳細については、Informix のドキュメントと JDBC に関する Java 指向のドキュメントを参照してください。また、 JavaSoft の「JDBC tutorial」も参照してください。
簡単な SQL クエリの作り方
データベース アクセスにおける最も基本的な作業は、データを検索することです。WebLogic jDriver for Informix では、次の 3 段階の手順に従ってデータを取り出せます。
emp
)に対して簡単なクエリを実行し、3 つのカラムのデータを表示します。また、データの検索先のテーブルに関するメタデータにアクセスして表示します。最後に文を閉じます。
Statement stmt = conn.createStatement();
for (int i = 1; i <= md.getColumnCount(); i++) {
stmt.execute("select * from emp");
ResultSet rs = stmt.getResultSet();
while (rs.next()) {
System.out.println(rs.getString("empid") + " - " +
rs.getString("name") + " - " +
rs.getString("dept"));
}
ResultSetMetaData md = rs.getMetaData();
System.out.println("Number of columns: " +
md.getColumnCount());
System.out.println("Column Name: " +
md.getColumnName(i));
System.out.println("Nullable: " +
md.isNullable(i));
System.out.println("Precision: " +
md.getPrecision(i));
System.out.println("Scale: " +
md.getScale(i));
System.out.println("Size: " +
md.getColumnDisplaySize(i));
System.out.println("Column Type: " +
md.getColumnType(i));
System.out.println("Column Type Name: "+
md.getColumnTypeName(i));
System.out.println("");
}stmt.close();
レコードの挿入、更新、および削除
この手順では、データベース テーブルのレコードの挿入、更新、および削除という、データベースに関する 3 つの一般的な作業を示します。これらの処理には、JDBC PreparedStatement を使います。まず、PreparedStatement を作成してから、それを実行し、閉じます。
PreparedStatement(JDBC Statement のサブクラス)を使用すると、同じ SQL を値を変えて何度でも実行できます。PreparedStatement では、JDBC の「?」構文を使用します。
String inssql =
"insert into emp(empid, name, dept) values (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(inssql);
for (int i = 0; i < 100; i++) {
pstmt.setInt(1, i);
pstmt.setString(2, "Person " + i);
pstmt.setInt(3, i);
pstmt.execute():
}
pstmt.close();
PreparedStatement を使用してレコードを更新することもできます。次のサンプルでは、カウンタ「i」の値を「dept」フィールドの現在の値に追加します。
String updsql =
"update emp set dept = dept + ? where empid = ?";
PreparedStatement pstmt2 = conn.prepareStatement(updsql);
for (int i = 0; i < 100; i++) {
pstmt2.setInt(1, i);
pstmt2.setInt(2, i);
pstmt2.execute();
}
pstmt2.close();
最後に、PreparedStatement を使用して、さきほど追加および更新されたレコードを削除します。
String delsql = "delete from emp where empid = ?";
PreparedStatement pstmt3 = conn.prepareStatement(delsql);
for (int i = 0; i < 100; i++) {
pstmt3.setInt(1, i);
pstmt3.execute();
}
pstmt3.close();
ストアド プロシージャとストアド関数の作り方と使い方
WebLogic jDriver for Informix を使用して、ストアド プロシージャとストアド関数の作成、使用、および削除が行えます。
次のサンプル コードでは、一連の文を実行して、ストアド プロシージャとストアド関数をデータベースから削除します。
Statement stmt = conn.createStatement();
try {stmt.execute("drop procedure proc_squareInt");}
catch (SQLException e) {;}
try {stmt.execute("drop procedure func_squareInt");}
catch (SQLException e) {;}
try {stmt.execute("drop procedure proc_getresults");}
catch (SQLException e) {;}
stmt.close();
JDBC Statement を使用してストアド プロシージャまたはストアド関数を作成してから、JDBC の ?
構文で JDBC CallableStatement(Statement のサブクラス)を使用して、IN
および OUT
パラメータを設定します。
ストアド プロシージャの入力パラメータは、JDBC の IN
パラメータにマップされており、setInt()
などの CallableStatement.setXXX()
メソッドと JDBC PreparedStatement ?
構文で使われます。ストアド プロシージャの出力パラメータは、JDBC の OUT
パラメータにマップされており、CallableStatement.registerOutParameter()
メソッドと JDBC PreparedStatement ?
構文で使われます。パラメータを IN
と OUT
の両方に設定することもできます。その場合、setXXX()
と registerOutParameter()
の呼び出しが両方とも同じパラメータ番号に対して行われる必要があります。
次のサンプルでは、JDBC Statement を使用して ストアド プロシージャを 1 つ作成してから、そのプロシージャを CallableStatement. を使用して実行しています。registerOutParameter()
メソッドを使用して、2 乗された値を入れるための出力パラメータを設定しています。
Statement stmt1 = conn.createStatement();
for (int i = 0; i < 5; i++) {
stmt1.execute
("CREATE OR REPLACE PROCEDURE proc_squareInt " +
"(field1 IN OUT INTEGER, field2 OUT INTEGER) IS " +
"BEGIN field2 := field1 * field1; field1 := " +
"field1 * field1; END proc_squareInt;");
stmt1.close();
String sql = "{call proc_squareInt(?, ?)}";
CallableStatement cstmt1 = conn.prepareCall(sql);
// 出力パラメータを登録する
cstmt1.registerOutParameter(2, java.sql.Types.INTEGER);
cstmt1.setInt(1, i);
cstmt1.execute();
System.out.println(i + " " + cstmt1.getInt(1) + " "
+ cstmt1.getInt(2));
} cstmt1.close();
次のサンプルでは、同様のコードを使用して、整数を 2 乗するストアド関数を作成して実行します。
Statement stmt2 = conn.createStatement();
for (int i = 0; i < 5; i++) {
stmt2.execute("CREATE OR REPLACE FUNCTION func_squareInt " +
"(field1 IN INTEGER) RETURN INTEGER IS " +
"BEGIN return field1 * field1; " +
"END func_squareInt;");
stmt2.close();
sql = "{ ? = call func_squareInt(?)}";
CallableStatement cstmt2 = conn.prepareCall(sql);
cstmt2.registerOutParameter(1, Types.INTEGER);
cstmt2.setInt(2, i);
cstmt2.execute();
System.out.println(i + " " + cstmt2.getInt(1) +
" " + cstmt2.getInt(2));
}
cstmt2.close();
次に、sp_getmessages
というストアド プロシージャを使用します(このストアド プロシージャのコードはこのサンプルには含まれていません)。sp_getmessages
は、入力パラメータとしてメッセージ番号を取り、メッセージ テキストを出力パラメータ ResultSet に格納して返します。ストアド プロシージャから返された ResultSets に対して Statement.execute()
および Statement.getResult()
メソッドを実行してからでないと、OUT
パラメータと戻りステータスは使用可能になりません。
String sql = "{ ? = call sp_getmessage(?, ?)}";
CallableStatement stmt = conn.prepareCall(sql);
stmt.registerOutParameter(1, java.sql.Types.INTEGER);
stmt.setInt(2, 18000); // メッセージ番号 18000
stmt.registerOutParameter(3, java.sql.Types.VARCHAR);
まず、CallableStatement に対する 3 つのパラメータを設定します。
sp_getmessage
への msgno
引数
次に、ストアド プロシージャを実行し、戻り値をチェックして、ResultSet が空かどうかを調べます。空でない場合は、ループを使用して、その内容を取り出して表示するという処理を繰り返します。
boolean hasResultSet = stmt.execute();
while (true)
{
ResultSet rs = stmt.getResultSet();
int updateCount = stmt.getUpdateCount();
if (rs == null && updateCount == -1) // 他に結果がない場合
break;
if (rs != null) {
// 空になるまで ResultSet オブジェクトを処理する
while (rs.next()) {
System.out.println
("Get first col by id:" + rs.getString(1));
}
} else {
// 更新件数がある
System.out.println("Update count = " +
stmt.getUpdateCount());
}
stmt.getMoreResults();
}
ResultSet の処理が終わったら、次のサンプルに示すように、OUT
パラメータと戻りステータスが使用可能になります。
int retstat = stmt.getInt(1);
String msg = stmt.getString(3);
System.out.println("sp_getmessage: status = " +
retstat + " msg = " + msg);
stmt.close();
接続の切断とオブジェクトのクローズ
接続を閉じる前に、データベースに対する変更をコミットする場合もあります。この場合は、commit()
メソッドを呼び出します。
自動コミットが true(デフォルトの JDBC トランザクション モード)に設定されている場合、各 SQL 文がそれぞれトランザクションになります。しかし、このサンプルでは、Connection を作成した後に、自動コミットを false に設定しました。このモードでは、Connection は関連する暗黙的なトランザクションを常に持っており、rollback()
または commit()
メソッドを呼び出すと、現在のトランザクションが終了し、新しいトランザクションが開始されます。close()
の前に commit()
を呼び出すと、Connection を閉じる前にすべてのトランザクションが必ず完了します。
Statement、PreparedStatement、および CallableStatement を使う作業が終了したときにこれらのオブジェクトを閉じるように、アプリケーションの最後のクリーンアップ手順として、Connection オブジェクトの close()
メソッドを try {}
ブロック内で必ず呼び出すようにします。例外を捕捉して適切な処理を行います。このサンプルの最後の 2 行では、commit
を呼び出してから接続を close
します。
conn.commit();
conn.close();
挿入後の SERIAL カラムの取り出し
挿入の後にシリアル値を取得するには、Statement.getSerialNumber()
メソッドを使用します。これは、WebLogic jDriver for Informix の JDBC の WebLogic 拡張機能です。これを使用すると、テーブルに行を追加するたびに行のインデックス順をトラッキングできます。ただし、SERIAL カラムを持つテーブルを作成しなければなりません。
この拡張機能を使用するには、Statement オブジェクトを weblogic.jdbc.informix4.Statement
に明示的にキャストする必要があります。
次の簡単なサンプル コードは、getSerialNumber()
メソッドの使用方法を示します。
weblogic.jdbc.informix4.Statement stmt =
for (int i = 100; i < 110 ; i++ ) {
(weblogic.jdbc.informix4.Statement)conn.createStatement();
String sql = "CREATE TABLE test ( s SERIAL, count INT )";
stmt.executeUpdate(sql);
sql = "INSERT INTO test VALUES (0, " + i + ")";
stmt.executeUpdate(sql);
int ser = stmt.getSerialNumber();
System.out.println("serial number is: " + ser);
}
sql = "SELECT * from test";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println("row: " + rs.getString(2) +
" serial: " + rs.getString(1));
Informix INTERVAL データ型の使い方
Informix INTERVAL データ型を使用するには、weblogic.jdbc.common.InformixInterval
をインポートして、ユーザのオブジェクトを weblogic.jdbc.common.InformixInterval
にキャストします。
INTERVAL 値を SQL 文に入力するには、Informix INTERVAL フォーマットのリテラル文字列を使用します。prepared statement に INTERVAL 値パラメータを設定するには、preparedStatement.setString()
を使用します。
INTERVAL データ型を Informix サーバから取り出すために、WebLogic jDriver for Informix は、ResultSet について次の 3 つの標準的な API をサポートしています。
ResultSet.getString()
は、interval の文字列表記を標準 Informix フォーマットで返します。interval が null の場合は null を返します。
ResultSet.getBytes()
は interval を表すためにサーバから返される実バイトを返します。
ResultSet.getObject()
は、weblogic.jdbc.common.InformixInterval
型のオブジェクトを返します。interval が null の場合は null を返します。
InformixInterval
インタフェースは、以下のパブリック メソッドを提供します。
String getString() throws SQLException
ResultSet.getString()
と同じです。
int getYear() throws SQLException
int getMonth() throws SQLException
int getDay() throws SQLException
int getHour() throws SQLException
int getMinute() throws SQLException
int getSecond() throws SQLException
int getFraction() throws SQLException
ResultSetMetaData メソッドの使い方
ResultSetMetaData メソッドを使用すると、Informix サーバが返したメタデータにアクセスできます。ただし、Informix サーバは以下の情報を返しません。
getSchemaName(int)
getTableName(int)
getCatalogName(int)
自動コミット モードの使い方
他のデータベース システムの属性と違い、Informix データベースの自動コミット モードは動的に設定できません。データベースが作成されたときに定義します。定義は、Connection.setAutoCommit
への呼び出しで変更できません。非 ANSI、非ログ データベースだけが自動コミット モードを動的に変更する機能をサポートします。
JDBC 仕様では、自動コミット モードはデフォルトで true に設定されます。しかし、Informix に関しては、自動コミットのデフォルト設定を true
に変更することはできません。Informix では、自動コミット モードを識別することしかできません。このモードを変更するには、まずデータベースを再構築する必要があります(詳細については、Informix のマニュアルの「CREATE DATABASE」を参照してください)。
データベースを再構築してからでないと自動コミットの状態を変更できないということは、トランザクションとロックの動作に影響します。 さまざまな JDBC プログラムは、Informix データベースが各プログラム内でどのように作成されているかによって動作が異なります。
自動コミットに依存する前に、使用するデータベースの自動コミットがどのような設定になっているかを把握する必要があります。データベースの自動コミット モードをチェックするには、Connection.getAutoCommit()
メソッドを使用します。このメソッドは、自動コミットが使用可能であれば true を返します。Informix の場合、このメソッドは ANSI データベースについては false をデフォルトで返し、非 ANSI データベースについては、データベースがどのように作成されたかによって true または false を返します。
次の設定は、Connection.setAutoCommit()
メソッドを呼び出した場合に、WebLogic jDriver for Informix がサポートしているものです。
したがって、プログラムは、使用する Informix データベースの状態に合わせて機能するはずです。
非 ANSI データベースを使用し、自動コミットを false に設定した場合、トランザクションを構成する SQL はすべて、Connection.commit()
または Connection.rollback()
メソッドを使用して実行されなければなりません。WebLogic jDriver for Informix は、autocommit=false ステータスをシミュレートするためにトランザクション コマンドを内部的に使用するので、明示的なトランザクション制御 BEGIN WORK、COMMIT WORK、または ROLLBACK WORK を Statement で絶対に実行しないでください。トランザクションは、必ず、Connection クラスの commit()
および rollback()
メソッドを使って制御してください。
ロギングなしの非 ANSI データベースでは、トランザクションをサポートしていないので、autocommit=false はサポートされません。したがって、そのようなデータベースを使用する場合は、autocommit=true だけがサポートされます。
Informix 固有の機能のサポート
WebLogic jDriver for Informix は、JDBC 仕様には含まれていない Informix 固有の機能もサポートします。このサポートによって、Informix データベース用のクライアント アプリケーションをより柔軟に作成できます。その内容は次のとおりです。
それぞれの機能について以下の節で説明します。
VARCHAR/CHAR データをバイト列として取り出す
WebLogic jDriver for Informix が提供する Informix 用の JDBC 拡張機能では、ユーザが ResultSet.getBytes(String columnName)
メソッドと ResultSet.getBytes(int columnIndex)
メソッドを使って VARCHAR カラムと CHAR カラムを取り出すことができます。この作業は JDBC 仕様には含まれていませんが、顧客の要望に応えて実装されました。この機能を利用するために、ResultSet をキャストする必要はありません。
コードセットのサポート
Java アプリケーションとして、WebLogic jDriver for Informix は文字列を Unicode 文字列として扱います。異なるコードセットを使って動作するデータベースと文字列をやりとりするには、weblogic.codeset
接続プロパティを適切な JDK コードセットに変更する必要があります。ユーザのデータベースのコードセットと JDK が提供した文字セットが直接対応しない場合は、weblogic.codeset
接続プロパティを最も適切な Java 文字セットに設定することができます。
たとえば、次のサンプル コードのように、cp932 コードセットを使用するには、Driver.connect()
を呼び出す前に、Properties オブジェクトを作成し、weblogic.codeset
プロパティを設定します。
java.util.Properties props = new java.util.Properties();
props.put("weblogic.codeset", "cp932");
props.put("user", "scott");
props.put("password", "tiger");
String connectUrl = "jdbc:weblogic:informix4:myDB@myHost:1493";
Driver myDriver = (Driver)
Class.forName("weblogic.jdbc.informix4.Driver").newInstance();
Connection conn =
myDriver.connect(connectUrl, props);
Prepared Statementでの Unicode ストリームの使い方
PreparedStatement.setUnicodeStream
メソッドを使用中に、コンストラクタの String 値を使用して、独自の InputStream オブジェクトや、weblogic.jdbc.informix4.UnicodeInputStream
オブジェクトを作成できます。次のサンプル コードは、Unicode ストリームを Informix TEXT カラムに入力する方法(上記の connectUrl
オブジェクトと props
オブジェクトを使用)を示します。
Driver myDriver = (Driver)
Class.forName("weblogic.jdbc.informix4.Driver").newInstance();
Connection c =
myDriver.connect(connectUrl, props);
PreparedStatement ps =
\
c.prepareStatement("insert into dbTEST values (99,?)");
String s = new String("u93e1
\u68b0
\u897f");
weblogic.jdbc.informix4.UnicodeInputStream uis =
new weblogic.jdbc.informix4.UnicodeInputStream(s);
try {
ps.setUnicodeStream(1,uis,uis.available());
}
catch (java.io.IOException ioe) {
System.out.println("-- IO Exception in setUnicodeStream");
}
ps.executeUpdate();
UnicodeInputStream からデータを取り出すために java.io.InputStream
.を使用します。次に例を示します。
InputStream uisout = rs.getUnicodeStream(2);
}
int i=0;
while (true) {
try {
i = uisout.read(); // 1 度に 1 バイトずつ UnicodeStream から読み込む
catch (IOException e) {
System.out.println("-- IOException reading UnicodeStream");
}
詳細については、samples
\examples
\jdbc
\informix4
ディレクトリに含まれている WebLogic Server に付属の完全なサンプルを参照してください。
WebLogic jDriver for Informix の JDBC への適合状況
WebLogic jDriver for Informix は、JDBC 仕様に準拠した完全な実装です。ただし、Informix でサポートされていない機能や、使用できない機能を除きます。DatabaseMetaData インタフェースの実装に関して混乱を招く可能性があるので、すべてのメソッドをこの節に列挙します。ほどんとのメソッドは現在サポートされていますが、将来のリリースでサポートする予定のものと、(Informix の制限または実装によって) WebLogic jDriver for Informix ではサポートされないものがあります。
以下の DatabaseMetaData メソッドがサポートされています。
allProceduresAreCallable()
allTablesAreSelectable()
dataDefinitionCausesTransactionCommit()
dataDefinitionIgnoredInTransactions()
doesMaxRowSizeIncludeBlobs()
getCatalogSeparator()
getCatalogTerm()
getColumns()
getDatabaseProductName()
getDatabaseProductVersion()
getDefaultTransactionIsolation()
getDriverMajorVersion()
getDriverMinorVersion()
getDriverName()
getDriverVersion()
getExportedKeys()
getExtraNameCharacters()
getIdentifierQuoteString()
getImportedKeys()
getMaxBinaryLiteralLength()
getMaxCatalogNameLength()
getMaxCharLiteralLength()
getMaxColumnNameLength()
getMaxColumnsInGroupBy()
getMaxColumnsInIndex()
getMaxColumnsInOrderBy()
getMaxColumnsInSelect()
getMaxColumnsInTable()
getMaxConnections()
getMaxCursorNameLength()
getMaxIndexLength()
getMaxProcedureNameLength()
getMaxRowSize()
getMaxSchemaNameLength()
getMaxStatementLength()
getMaxStatements()
getMaxTableNameLength()
getMaxTablesInSelect()
getMaxUserNameLength()
getNumericFunctions()
getPrimaryKeys()
getProcedures()
getProcedureTerm()
getSchemas()
getSchemaTerm()
getSearchStringEscape()
getSQLKeywords()
getStringFunctions()
getSystemFunctions()
getTables()
getTableTypes()
getTimeDateFunctions()
getTypeInfo()
getURL()
getUserName()
isCatalogAtStart()
isReadOnly()
nullPlusNonNullIsNull()
nullsAreSortedAtEnd()
nullsAreSortedAtStart()
nullsAreSortedHigh()
nullsAreSortedLow()
storesLowerCaseIdentifiers()
storesLowerCaseQuotedIdentifiers()
storesMixedCaseIdentifiers()
storesMixedCaseQuotedIdentifiers()
storesUpperCaseIdentifiers()
storesUpperCaseQuotedIdentifiers()
supportsAlterTableWithAddColumn()
supportsAlterTableWithDropColumn()
supportsANSI92EntryLevelSQL()
supportsANSI92FullSQL()
supportsANSI92IntermediateSQL()
supportsCatalogsInDataManipulation()
supportsCatalogsInIndexDefinitions()
supportsCatalogsInPrivilegeDefinitions()
supportsCatalogsInProcedureCalls()
supportsCatalogsInTableDefinitions()
supportsColumnAliasing()
supportsConvert()
supportsCoreSQLGrammar()
supportsCorrelatedSubqueries()
supportsDataDefinitionAndDataManipulationTransactions()
supportsDataManipulationTransactionsOnly()
supportsDifferentTableCorrelationNames()
supportsExpressionsInOrderBy()
supportsExtendedSQLGrammar()
supportsFullOuterJoins()
supportsGroupBy()
supportsGroupByBeyondSelect()
supportsGroupByUnrelated()
supportsIntegrityEnhancementFacility()
supportsLikeEscapeClause()
supportsLimitedOuterJoins()
supportsMinimumSQLGrammar()
supportsMixedCaseIdentifiers()
supportsMixedCaseQuotedIdentifiers()
supportsMultipleResultSets()
supportsMultipleTransactions()
supportsNonNullableColumns()
supportsOpenCursorsAcrossCommit()
supportsOpenCursorsAcrossRollback()
supportsOpenStatementsAcrossCommit()
supportsOpenStatementsAcrossRollback()
supportsOrderByUnrelated()
supportsOuterJoins()
supportsPositionedDelete()
supportsPositionedUpdate()
supportsSchemasInDataManipulation()
supportsSchemasInIndexDefinitions()
supportsSchemasInPrivilegeDefinitions()
supportsSchemasInProcedureCalls()
supportsSchemasInTableDefinitions()
supportsSelectForUpdate()
supportsStoredProcedures()
supportsSubqueriesInComparisons()
supportsSubqueriesInExists()
supportsSubqueriesInIns()
supportsSubqueriesInQuantifieds()
supportsTableCorrelationNames()
supportsTransactionIsolationLevel()
supportsTransactions()
supportsUnion()
supportsUnionAll()
usesLocalFilePerTable()
usesLocalFiles()
以下のメソッドは実装済みで、現在検証中です。
getBestRowIdentifier()
getColumnPrivileges()
getTablePrivileges()
以下のメソッドのサポートが予定されています。
getIndexInfo()
supportsConvert()
以下のメソッドのサポートは予定されていません。
getCatalogs()
getCrossReference()
getProcedureColumns()
getVersionColumns()
参考資料
この節では、WebLogic jDriver for Informix を使用する場合に参考となるドキュメントおよびサンプル コードを示します。
ドキュメント
その他の WebLogic JDBC ドライバ、補足ドキュメント、サポート リソースなどに関する情報が入っています。
接続プール、データソース、およびマルチプールの作成など、JDBC 接続のコンフィグレーションに関する管理作業について説明しています。
コード例
WebLogic jDriver for Informix では、サンプル コードを用意しています。サンプル コードは、WebLogic jDriver for Informix 配布キットの samples
\examples
\jdbc
\informix4
ディレクトリに入っています。
![]() |
![]() |