ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ホーム   |     JDBC プログラミング ガイド   |   前へ   |   次へ   |   目次   |   索引   |   PDF 版

WebLogic Server でのサードパーティ ドライバの使い方

 

以下の節では、サードパーティ JDBC ドライバの設定および使用方法について説明します。

 


サードパーティ JDBC ドライバの概要

WebLogic Server は、以下の機能を提供するサードパーティ JDBC ドライバと連携して機能します。

この節では、以下のサードパーティ 2 層 Type 4 ドライバを WebLogic Server で設定して使用する方法について説明します。

Sybase jConnect Driver(バージョン 4.2/5.2 および 5.5)と Oracle Thin Driver(バージョン 9.2.0)は WebLogic Server 配布キットに同梱されています。weblogic.jar ファイルには、Oracle Thin Driver クラスと Sybase jConnect クラスが収めれています。これらの Oracle ドライバと Sybase ドライバの詳細は、それぞれの Web サイトで入手できます。

注意: WebLogic Server 6.1 サービス パック 4 では、weblogic.jar に収められている Oracle Thin Driver のバージョンは 9.2.0 です。WebLogic Server 6.1の以前のリリースには、Oracle Thin Driver のバージョン 8.1.7 が付属していました。

制限

次の事項に注意してください。

サードパーティ ドライバ用の環境の設定

weblogic.jar に含まれる Oracle Thin Driver または Sybase jConnect Driver 以外のサードパーティ JDBC ドライバを使用する場合、JDBC ドライバ クラスのパスを CLASSPATH に追加する必要があります。以降のトピックでは、サードパーティ JDBC ドライバの使用時に Windows および UNIX で CLASSPATH を設定する方法について説明します。

Windows でのサードパーティ ドライバの CLASSPATH

次のように、JDBC ドライバ クラスおよび weblogic.jar へのパスを CLASSPATH に追加します。

set CLASSPATH=DRIVER_CLASSES;WL_HOME\lib\weblogic.jar;%CLASSPATH%

DRIVER_CLASSES は JDBC ドライバ クラスのパス、WL_HOME は WebLogic Server がインストールされているディレクトリです。

UNIX でのサードパーティ ドライバの CLASSPATH

次のようにして、JDBC ドライバ クラスおよび weblogic.jar へのパスを CLASSPATH に追加します。

export CLASSPATH=DRIVER_CLASSES:WL_HOME/lib/weblogic.jar:
$CLASSPATH

DRIVER_CLASSES は JDBC ドライバ クラスのパス、WL_HOME は WebLogic Server がインストールされているディレクトリです。

Oracle Thin Driver の更新

WebLogic Server に同梱されている Oracle Thin Driver を更新するには、CLASSPATH で、weblogic.jar のパスの前に新しいドライバ クラスのパスを追加する必要があります。次に例を示します。

set CLASSPATH=%ORACLE_HOME%\jdbc\lib\classes12.zip;
%WL_HOME%\lib\weblogic.jar;%CLASSPATH%
(Windows の場合)

または

export CLASSPATH=$ORACLE_HOME/jdbc/lib/classes12.zip:
$WL_HOME/lib/weblogic.jar:$CLASSPATH
(UNIX の場合)

weblogic.jar に収められている Oracle Thin Driver バージョン 9.2.0 に更新するには、または新しいバージョンのドライバを使用するには、次の手順に従います。

Oracle Thin Driver は、Oracle DBMS ソフトウェアに含まれます。ドライバのアップデートは、 http://otn.oracle.com/software/content.htmlOracle Web サイト からダウンロードできます。

Oracle Thin Driver は Oracle DBMS ソフトウェアに付属します。また、Oracle Web サイト(http://otn.oracle.com/software/content.html)からドライバの更新をダウンロードすることもできます。

Sybase jConnect Driver の更新

WebLogic Server に同梱されている Sybase jConnect Driver を更新するには、CLASSPATH で、weblogic.jar のパスの前に jConnect ドライバのパスを追加する必要があります。次に例を示します。

set CLASSPATH=%SYBASE_HOME%\jConnect-5_5\classes\jconn2.jar;
%WL_HOME%\lib\weblogic.jar;%CLASSPATH%
(Windows の場合)

または

export CLASSPATH=$SYBASE_HOME/jConnect-5_5/classes/jconn2.jar:
$WL_HOME/lib/weblogic.jar:$CLASSPATH
(UNIX の場合)

Sybase jConnect Driver(jConnect.jar)は Sybase DBMS ソフトウェアに付属します。Sybase Web サイトからドライバの更新をダウンロードすることもできます。

IBM Informix JDBC ドライバのインストールと使い方

Informix データベースと共に Weblogic Server を使用する場合は、IBM の Web サイト http://www.informix.com/evaluate/ から IBM Informix JDBC ドライバを入手して使用することをお勧めします。IBM Informix JDBC ドライバは自由に使用できますが、サポートを受けることはできません。製品をダウンロードするには、IBM への登録が必要な場合があります。JDBC/EMBEDDED SQLJ のセクションからドライバをダウンロードし、ダウンロードした zip ファイルに収められている install.txt ファイルの指示に従ってドライバをインストールします。

ドライバをダウンロードしてインストールした後は、以下の手順に従って、WebLogic Server でドライバを使用するための準備をします。

  1. ifxjdbc.jar ファイルと ifxjdbcx.jar ファイルを INFORMIX_INSTALL\lib からコピーし、WL_HOME\server\lib フォルダに格納します。

    INFORMIX_INSTALL は、Informix JDBC ドライバをインストールしたルート ディレクトリです。

    また、WL_HOME は WebLogic Server をインストールしたフォルダで、通常は c:\bea\wlserver6.1 です。

  2. ifxjdbc.jarifxjdbcx.jar に対するパスを CLASSPATH に追加します。次はその例です。

    set CLASSPATH=%WL_HOME%\server\lib\ifxjdbc.jar;%WL_HOME%\server\lib\ifxjdbcx.jar;%CLASSPATH%

    WebLogic Server の起動スクリプトの set CLASSPATH 文に、ドライバ ファイルへのパスを追加してもかまいません。

IBM Informix JDBC ドライバを使用するときの接続プール属性

IBM Informix JDBC ドライバを使用する接続プールを作成するときは、 表 6-1 および 表 6-2 で示す属性を使用します。

表6-1 Informix JDBC ドライバを使用する XA 以外の接続プールの属性

属性

URL

jdbc:informix-sqli:dbserver_name_or_ip:port/dbname:informixserver=ifx_server_name

ドライバ クラス名

com.informix.jdbc.IfxDriver

プロパティ

user=username

url=jdbc:informix-sqli:dbserver_name_or_ip:port/dbname:informixserver=ifx_server_name

portNumber=1543

databaseName=dbname

ifxIFXHOST=ifx_server_name

serverName=dbserver_name_or_ip

パスワード

password

ログイン遅延秒数

1

ターゲット

serverName

config.xml ファイルのエントリの例を次に示します。

<JDBCConnectionPool
DriverName="com.informix.jdbc.IfxDriver"
InitialCapacity="3"
LoginDelaySeconds="1"
MaxCapacity="10"
Name="ifxPool"
Password="xxxxxxx"
Properties="informixserver=ifxserver;user=informix"
Targets="examplesServer"
URL="jdbc:informix-sqli:ifxserver:1543"
/>

表6-2 Informix JDBC ドライバを使用する XA 接続プールの属性

属性

URL

leave blank

ドライバ クラス名

com.informix.jdbcx.IfxXADataSource

プロパティ

user=username

url=jdbc:informix-sqli://dbserver_name_or_ip:port_num/dbname:informixserver=dbserver_name_or_ip

password=password

portNumber =port_num;

databaseName=dbname

serverName=dbserver_name

ifxIFXHOST=dbserver_name_or_ip

パスワード

leave blank

ローカル トランザクションのサポート

true

ターゲット

serverName

注意: プロパティの文字列では、portNumber= の間にはスペースがあります。

config.xml ファイルのエントリの例を次に示します。

<JDBCConnectionPool CapacityIncrement="2"
DriverName="com.informix.jdbcx.IfxXADataSource"
InitialCapacity="2" MaxCapacity="10"
Name="informixXAPool"
Properties="user=informix;url=jdbc:informix-sqli:
//111.11.11.11:1543/db1:informixserver=lcsol15;
password=informix;portNumber =1543;databaseName=db1;
serverName=dbserver1;ifxIFXHOST=111.11.11.11"
SupportsLocalTransaction="true" Targets="examplesServer"
TestConnectionsOnReserve="true" TestTableName="emp"/>

注意: Administration Console を使って接続プールを作成する場合は、サーバを停止して再起動しないと、接続プールがターゲット サーバに正しくデプロイされない場合があります。これは確認されている問題です。

IBM Informix JDBC ドライバを使用するプログラミングでの注意事項

IBM Informix JDBC ドライバを使用するときは、以下の制限事項について考慮する必要があります。

 


サードパーティ ドライバを使用した接続の取得

以下の節では、Oracle Thin Driver や Sybase jConnect Driver などのサードパーティ Type 4 ドライバを使用して接続を取得するための方法を 2 つ説明します。接続を確立するには、接続プール、データ ソース、および JNDI ルックアップを使用することをお勧めします。また、Java クライアントとデータベース間の単純な接続を直接取得するという方法もあります。

サードパーティ ドライバでの接続プールの使い方

まず、 Administration Console を使用して接続プールとデータ ソースを作成し、次に JNDI ルックアップを使用して接続を確立します。

接続プールと DataSource の作成

Administration Console を使用して以下の作業を行う方法については、『管理者ガイド』の「JDBC 接続の管理」を参照してください。

JNDI を使用した接続の取得

JNDI を使用してサードパーティ ドライバにアクセスするには、まずサーバの URL を指定して JNDI ツリーから Context オブジェクトを取得し、次にそのコンテキスト オブジェクトと DataSource 名を使用してルックアップを実行します。

たとえば、Administration Console で定義された「myDataSource」という DataSource にアクセスするには、以下のようにします。

Context ctx = null;
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,
"t3://hostname:port");

try {
ctx = new InitialContext(ht);
javax.sql.DataSource ds
= (javax.sql.DataSource) ctx.lookup ("myDataSource");
java.sql.Connection conn = ds.getConnection();

// これで conn オブジェクトを使用して
// Statement オブジェクトを作成して
// SQL 文を実行し、結果セットを処理できる

Statement stmt = conn.createStatement();
stmt.execute("select * from someTable");
ResultSet rs = stmt.getResultSet();

// 完了したら、文オブジェクトと
// 接続オブジェクトを忘れずにクローズすること

stmt.close();
conn.close();
}
catch (NamingException e) {
// エラー発生
}
finally {
try {ctx.close();}
catch (Exception e) {
// エラー発生
}
}

hostname は WebLogic Server が稼働するマシンのホスト名、port は WebLogic Server がリクエストをリスンするポートの番号です。)

この例では、Hashtable オブジェクトを使って、JNDI ルックアップに必要なパラメータを渡しています。JNDI ルックアップを実行する方法はほかにもあります。詳細については、『WebLogic JNDI プログラマーズ ガイド』を参照してください。

ルックアップの失敗を捕捉するために JNDI ルックアップが try/catch ブロックで包まれている点に注意してください。また、コンテキストが finally ブロックの中でクローズされている点にも注意してください

接続プールからの物理接続の取得

接続プールから接続を取得すると、WebLogic Server が接続プールで接続を管理できるよう、物理接続ではなく論理接続が提供されます。これは、アプリケーションが接続プールの機能を利用できるようにし、アプリケーションに提供される接続の品質を維持するために必要なことです。しかし、ベンダの接続クラスを必要とする DBMS ベンダ固有のメソッドに接続を渡す必要がある場合などのように、状況によっては、物理接続を使用したいことがあります。WebLogic Server に含まれる weblogic.jdbc.extensions.WLConnection インタフェースの getVendorConnection() メソッドを使うと、論理接続から基になっている物理接続を取得できます。このインタフェースについては、『WebLogic クラスの Javadoc』を参照してください。

注意: 接続プールの論理接続ではなく物理接続を使うことは極力避けるよう強くお勧めします。 物理接続の使用に対する制限事項を参照してください。

物理データベース接続の使用は、ベンダ固有の処理のために必要な場合に限るべきです。コードでは、大半の JDBC 呼び出しは引き続き論理接続に対して行うようにしなければなりません。

接続を使い終わったら、論理接続を閉じなければなりません。コード内で、物理接続を閉じてはいけません。

物理データベース接続がアプリケーション コードから参照できるようになっていると、接続プールは、その接続を次に使用するユーザによる排他的アクセスを保証できなくなります。そのため、論理接続が閉じられると、WebLogic Server 側では、その論理接続を接続プールに戻しますが、その基になっている物理接続は破棄し、プール内の論理接続用に新しい物理接続を開きます。この方式は安全ですが、反面、低速でもあります。接続プールへのリクエストのたびに新しいデータベース接続が作成される可能性があるからです。

物理接続取得のサンプル コード

物理データベース接続を取得するには、最初に JNDI を使用した接続の取得で説明されているように接続プールから接続を取得したあと、以下のいずれかを実行します。

以下に例を示します。

// この追加クラスおよび必要なすべてのベンダ パッケージを
// インポートする。
import weblogic.jdbc.extensions.WLConnection
.
.
.
myJdbcMethod()
{

// 接続プールから取得される接続は、クラス変数やインスタンス変数ではなく、
// 常にメソッド レベルの変数でなければならない。
Connection conn = null;

try {
ctx = new InitialContext(ht);
// JNDI ツリーでデータ ソースをルックアップし、
// 接続を要求する。
javax.sql.DataSource ds
= (javax.sql.DataSource) ctx.lookup ("myDataSource");

// プール接続は、常に try ブロック内で取得する。
// 接続の使用はそのブロックの中ですべて済ませ、必要なら、
// finally ブロック内で接続を閉じる。
conn = ds.getConnection();

// conn オブジェクトを WLConnection インタフェースにキャストし、
// 基になっている物理接続を取得する。

java.sql.Connection vendorConn =
((WLConnection)conn)).getVendorConnection();

// vendorConn はクローズしない。

// 次のように、vendorConn オブジェクトをベンダのインタフェースに
// キャストすることもできる。
// oracle.jdbc.OracleConnection vendorConn =
// ((WLConnection)conn)).getVendorConnection()

// 物理接続を必要とするベンダ固有のメソッドを扱う場合には、
// 物理接続を取得したり保持するのではなく、必要に応じて
// ただ物理接続を暗黙的に渡すようにするのが最もよい。
// たとえば、以下のようにする。

//vendor.special.methodNeedingConnection(((WLConnection)conn)).getVendorConnection());

// ベンダ固有の呼び出しが終わったらすぐに、
// 接続への参照を破棄する。
// 接続を保持したり閉じたりしてはいけない。
// 汎用的な JDBC に対してはベンダ接続を使用しない。
// 標準の JDBC には、引き続き論理接続 (プール接続) を使用する。
vendorConn = null;

... メソッド全体に必要な JDBC 呼び出しをすべて行う...

// 論理接続 (プール接続) を閉じて接続プールに戻し、
// その接続への参照を破棄する。
conn.close();
conn = null;
}

catch (Exception e)
{
// 例外を処理する
}
finally
{
// 安全のために、論理接続 (プール接続) が閉じたかどうか
// チェックする。
// finally ブロックでは、常に最初のステップとして
// 論理接続 (プール接続) を閉じる。

if (conn != null) try {conn.close();} catch (Exception ignore){}
}
}

物理接続の使用に対する制限事項

接続プールの論理接続の代わりに物理接続を使うことは極力避けるよう強くお勧めします。ただし、STRUCT を作成するためなど、物理接続を使用しなければならない場合は、以下のデメリットと制限を考慮してください。

直接 (非プール) JDBC 接続の取得

次の単純な例では、WebLogic Server で実行される Java コードとデータベースの間に単純な接続を直接確立する方法を示します。driver.connect() を使用して直接接続を設定します。DriverManager を使用して JDBC 接続を取得しないでください。DriverManager のメソッドは、マルチスレッドのアプリケーションに対して過剰に同期が取られるため、WebLogic Server がシングルスレッドになったり、ロックしたりする可能性があります。

以下の例では、サードパーティのドライバを使用して直接接続を取得する方法について説明します。

Oracle Thin Driver を使用した直接接続の取得

以下の例では、Oracle Thin Driver を使用して直接接続を設定する方法について説明します。

Sybase jConnect Driver を使用した直接接続の取得

以下の例では、Sybase jConnect Driver を使用して直接接続を設定する方法について説明します。

 


Oracle Thin Driver の拡張機能

BEA では、RMI、JTS、および Pool ドライバを使用する場合に、Oracle Thin Driver の以下の拡張機能をサポートしています。

Oracle 標準の拡張機能

Oracle Blob または Clob

以降の節では、Oracle 拡張機能のサンプル コードと、サポートされるメソッドの表を示します。詳細については、Oracle のマニュアルを参照してください。

Oracle 拡張機能から JDBC インタフェースにアクセスするサンプル コード

以下のコード例は、WebLogic Oracle 拡張機能から標準 JDBC インタフェースにアクセスする方法を示しています。以下の例では、OracleConnection および OracleStatement 拡張機能を使用します。この例の構文は、WebLogic Server でサポートされるメソッドを使用する場合、OracleResultSet、OraclePreparedStatement、OracleCallableStatement、および OracleArray インタフェースで使用できます。サポートされるメソッドについては、 Oracle インタフェースの表を参照してください。この例の構文は、WebLogic Server でサポートされるメソッドを使用する場合、OracleResultSet、OraclePreparedStatement、および OracleCallableStatement の各インタフェースで使用できます。サポートされるメソッドについては、 Oracle インタフェースの表を参照してください。

OracleThinBlob および OracleThinClob インタフェースへのアクセス方法の例については、 Oracle Blob/Clob インタフェースにアクセスするサンプル コードを参照してください。

Oracle 拡張機能へアクセスするパッケージをインポートする

この例で使用する Oracle インタフェースをインポートします。OracleConnection および OracleStatement インタフェースは、oracle.jdbc.OracleConnection および oracle.jdbc.OracleStatement に相当し、WebLogic Server でサポートされるメソッドを使用する場合、これらの Oracle インタフェースと同様に使用できます。

import java.sql.*;
import java.util.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import weblogic.jdbc.vendor.oracle.OracleConnection;
import weblogic.jdbc.vendor.oracle.OracleStatement;

接続を確立する

JNDI、DataSource、および接続プール オブジェクトを使用して、接続を確立します。詳細については、 JNDI を使用した接続の取得を参照してください。

// 接続プールの有効な DataSource オブジェクトを取得する
// ここでは、その詳細を getDataSource() が
// 処理すると仮定する
javax.sql.DataSource ds = getDataSource(args);

// DataSource から java.sql.Connection オブジェクトを取得する
java.sql.Connection conn = ds.getConnection();

デフォルトの行プリフェッチ値を取得する

次のコードでは、Oracle Thin Driver で使用できる Oracle の行プリフェッチ メソッドの使い方を示します。

// OracleConnection にキャストして、この接続の
// デフォルトの行プリフェッチ値を取得する

int default_prefetch =
((OracleConnection)conn).getDefaultRowPrefetch();

System.out.println("Default row prefetch
is " + default_prefetch);

java.sql.Statement stmt = conn.createStatement();

// OracleStatement にキャストして、この文の
// 行プリフェッチ値を設定する
// このプリフェッチ値は、WebLogic Serverとデータベースの
// 間の接続に適用されることに注意
((OracleStatement)stmt).setRowPrefetch(20);

// 通常の SQL クエリを実行して、その結果を処理 ...
String query = "select empno,ename from emp";
java.sql.ResultSet rs = stmt.executeQuery(query);

while(rs.next()) {
java.math.BigDecimal empno = rs.getBigDecimal(1);
String ename = rs.getString(2);
System.out.println(empno + "\t" + ename);
}

rs.close();
stmt.close();

conn.close();
conn = null;
}

Oracle Blob/Clob インタフェースにアクセスするサンプル コード

この節では、OracleThinBlob インタフェースへのアクセス方法を示すサンプル コードを提供します。WebLogic Server でサポートされるメソッドを使用する場合、この例の構文は、OracleThinBlob インタフェースで使用できます。 Oracle インタフェースの表を参照してください。

注意: Blob および Clob(「LOB」と呼ばれる)を使用する場合、トランザクションの境界を考慮する必要があります。たとえば、すべての読み取り/書き込みをトランザクション内の特定の LOB に転送します。詳細については、Oracle Web サイト にある Oracle のマニュアルの「LOB Locators and Transaction Boundaries」を参照してください。

Blob および Clob 拡張機能にアクセスするパッケージをインポートする

インポートするクラスに次の WebLogic Server Oracle Blob も加えます。

import weblogic.jdbc.vendor.oracle.OracleThinBlob;

DBMS から Blob ロケータを選択するクエリを実行する

Blob ロケータまたはハンドルは、Oracle Thin Driver Blob への参照です。

String selectBlob = "select blobCol from myTable where blobKey = 666"

WebLogic Server java.sql オブジェクトを宣言する

次のコードでは、Connection が既に確立されていることを前提としています。

ResultSet rs = null;
Statement myStatement = null;
java.sql.Blob myRegularBlob = null;
java.io.OutputStream os = null;

SQL 例外ブロックを開始する

この try/catch ブロックでは、Blob ロケータを取得して、Oracle Blob 拡張機能にアクセスします。

try {

// Blob ロケータを取得 ..

myStatement = myConnect.createStatement();
rs = myStatement.executeQuery(selectBlob);
while (rs.next()) {
myRegularBlob = rs.getBlob("blobCol");

}

// 記述用の基底の Oracle 拡張機能にアクセスする
// OracleThinBlob インタフェースをキャストして、
// Oracle メソッドにアクセスする

os = ((OracleThinBlob)myRegularBlob).getBinaryOutputStream();
.....
........

} catch (SQLException sqe) {
System.out.println("ERROR(general SQE): " +
sqe.getMessage());
}

Oracle.ThinBlob インタフェースをキャストしたら、BEA がサポートするメソッドにアクセスできます。

Prepared Statement を使用した CLOB 値の更新

Prepared Statement を使用して CLOB を更新する場合、新しい値が古い値より短いと、更新の際に明示的に置換されなかった文字が CLOB に残ります。たとえば、現在の値が abcdefghij である CLOB を Prepared Statement で zxyw という値に更新すると、更新後の CLOB の値は zxywefghij になります。Prepared Statement で更新した結果を正しい値にするには、dbms_lob.trim プロシージャを使って、更新後に残っている余分な文字を削除する必要があります。dbms_lob.trim プロシージャの詳細については、Oracle のマニュアルを参照してください。

Oracle インタフェースの表

以下の表に、Oracle インタフェースを示します。

Oracle 拡張機能およびサポートされるメソッド

以下の表に Oracle インタフェースを示します。また、java.sql.* インタフェースを拡張するために Oracle Thin Driver で使用するメソッドで、サポートされているものを示します。Blob/Clob インタフェースについては、 Oracle Blob/Clob インタフェースにアクセスするサンプル コードを参照してください。

表6-3 OracleConnection インタフェース

拡張

メソッド シグネチャ

OracleConnection
extends java.sql.Connection


boolean getAutoClose()
throws java.sql.SQLException;

void setAutoClose(boolean on) throws
java.sql.SQLException;

String getDatabaseProductVersion()
throws java.sql.SQLException;

String getProtocolType() throws
java.sql.SQLException;

String getURL() throws java.sql.SQLException;

String getUserName()
throws java.sql.SQLException;

boolean getBigEndian()
throws java.sql.SQLException;

boolean getDefaultAutoRefetch() throws
java.sql.SQLException;

boolean getIncludeSynonyms()
throws java.sql.SQLException;

boolean getRemarksReporting()
throws java.sql.SQLException;

boolean getReportRemarks()
throws java.sql.SQLException;

boolean getRestrictGetTables()
throws java.sql.SQLException;

boolean getUsingXAFlag()
throws java.sql.SQLException;

boolean getXAErrorFlag()
throws java.sql.SQLException;

OracleConnection
extends java.sql.Connection

(続く)

byte[] getFDO(boolean b)
throws java.sql.SQLException;

int getDefaultExecuteBatch() throws
java.sql.SQLException;

int getDefaultRowPrefetch()
throws java.sql.SQLException;

int getStmtCacheSize()
throws java.sql.SQLException;

java.util.Properties getDBAccessProperties()
throws java.sql.SQLException;

short getDbCsId() throws java.sql.SQLException;

short getJdbcCsId() throws java.sql.SQLException;

short getStructAttrCsId()
throws java.sql.SQLException;

short getVersionNumber()
throws java.sql.SQLException;

void archive(int i, int j, String s)
throws java.sql.SQLException;

void close_statements()
throws java.sql.SQLException;

void initUserName() throws java.sql.SQLException;

void logicalClose() throws java.sql.SQLException;

void needLine() throws java.sql.SQLException;

void printState() throws java.sql.SQLException;

void registerSQLType(String s, String t)
throws java.sql.SQLException;

void releaseLine() throws java.sql.SQLException;

OracleConnection
extends java.sql.Connection

(続く)

void removeAllDescriptor()
throws java.sql.SQLException;

// これは Sun の綴り

void removeDecriptor(String s)
throws java.sql.SQLException;

void setDefaultAutoRefetch(boolean b)
throws java.sql.SQLException;

void setDefaultExecuteBatch(int i)
throws java.sql.SQLException;

void setDefaultRowPrefetch(int i)
throws java.sql.SQLException;

void setFDO(byte[] b)
throws java.sql.SQLException;

void setIncludeSynonyms(boolean b)
throws java.sql.SQLException;

void setPhysicalStatus(boolean b)
throws java.sql.SQLException;

void setRemarksReporting(boolean b)
throws java.sql.SQLException;

void setRestrictGetTables(boolean b)
throws java.sql.SQLException;

void setStmtCacheSize(int i)
throws java.sql.SQLException;

void setStmtCacheSize(int i, boolean b)
throws java.sql.SQLException;

void setUsingXAFlag(boolean b)
throws java.sql.SQLException;

void setXAErrorFlag(boolean b)
throws java.sql.SQLException;

void shutdown(int i)
throws java.sql.SQLException;

void startup(String s, int i)
throws java.sql.SQLException;

注意: サービス パック 4 では、次のメソッドが削除されました。

表6-4 OracleStatement インタフェース

拡張

メソッド シグネチャ

OracleStatement
extends java.sql.statement

String getOriginalSql()
throws java.sql.SQLException;

String getRevisedSql()
throws java.sql.SQLException;

boolean getAutoRefetch()
throws java.sql.SQLException;

boolean is_value_null(boolean b, int i)
throws java.sql.SQLException;

byte getSqlKind()
throws java.sql.SQLException;

int creationState()
throws java.sql.SQLException;

int getRowPrefetch()
throws java.sql.SQLException;

int sendBatch()
throws java.sql.SQLException;

void clearDefines()
throws java.sql.SQLException;

void defineColumnType(int i, int j)
throws java.sql.SQLException;

void defineColumnType(int i, int j, String s)
throws java.sql.SQLException;

OracleStatement
extends java.sql.statement

(続く)

void defineColumnType(int i, int j, int k)
throws java.sql.SQLException;

void describe() throws java.sql.SQLException;

void notify_close_rset() throws
java.sql.SQLException;

void setAutoRefetch(boolean b)
throws java.sql.SQLException;

void setRowPrefetch(int i)
throws java.sql.SQLException;

注意: サービス パック 4 では、次のメソッドが削除されました。

表6-5 OracleResultSet インタフェース

拡張

メソッド シグネチャ

OracleResultSet
extends java.sql.ResultSet

boolean getAutoRefetch() throws java.sql.SQLException;

int getFirstUserColumnIndex() throws java.sql.SQLException;

void closeStatementOnClose() throws java.sql.SQLException;

void setAutoRefetch(boolean b) throws java.sql.SQLException;

java.sql.ResultSet getCursor(int n) throws java.sql.SQLException;

注意: サービス パック 4 では、次のメソッドが削除されました。

表6-6 OracleCallableStatement インタフェース

拡張

メソッド シグネチャ

OracleCallableStatement
extends java.sql.
CallableStatement

void clearParameters()
throws java.sql.SQLException;

void registerIndexTableOutParameter(int i,
int j, int k, int l)
throws java.sql.SQLException;

void registerOutParameter
(int i, int j, int k, int l)
throws java.sql.SQLException;

java.sql.ResultSet getCursor(int i)
throws java.sql.SQLException;

java.io.InputStream getAsciiStream(int i)
throws java.sql.SQLException;

java.io.InputStream getBinaryStream(int i)
throws java.sql.SQLException;

java.io.InputStream getUnicodeStream(int i)
throws java.sql.SQLException;

表6-7 OraclePreparedStatement インタフェース

拡張

メソッド シグネチャ

OraclePreparedStatement
extends OracleStatement and java.sql. PreparedStatement

int getExecuteBatch()
throws java.sql.SQLException;

void defineParameterType(int i, int j, int k)
throws java.sql.SQLException;

void setDisableStmtCaching(boolean b)
throws java.sql.SQLException;

void setExecuteBatch(int i)
throws java.sql.SQLException;

void setFixedCHAR(int i, String s)
throws java.sql.SQLException;

void setInternalBytes(int i, byte[] b, int j)
throws java.sql.SQLException;

表6-8 OracleArray インタフェース

拡張

メソッド シグネチャ

OracleArray
extends java.sql.Array


public ArrayDescriptor getDescriptor()
throws java.sql.Exception;

public String getSQLTypeName()
throws java.sql.Exception;

public int length()
throws java.sql.Exception;

public double[] getDoubleArray()
throws java.sql.Exception;

public double[] getDoubleArray(long l, int i)
throws java.sql.Exception;

public float[] getFloatArray()
throws java.sql.Exception;

public float[] getFloatArray(long l, int i)
throws java.sql.Exception;

public int[] getIntArray()
throws java.sql.Exception;

public int[] getIntArray(long l, int i)
throws java.sql.Exception;

public long[] getLongArray()
throws java.sql.Exception;

public long[] getLongArray(long l, int i)
throws java.sql.Exception;

OracleArray
extends java.sql.Array

(続く)

public short[] getShortArray()
throws java.sql.Exception;

public short[] getShortArray(long l, int i)
throws java.sql.Exception;

public void setAutoBuffering(boolean flag)
throws java.sql.Exception;

public void setAutoIndexing(boolean flag)
throws java.sql.Exception;

public boolean getAutoBuffering()
throws java.sql.Exception;

public boolean getAutoIndexing()
throws java.sql.Exception;

public void setAutoIndexing(boolean flag, int i)
throws java.sql.Exception;

Oracle Blob/Clob 拡張機能とサポートされるメソッド

次の表に、java.sql.* インタフェースの拡張機能を示します。

表6-9 OracleThinBlob インタフェース

拡張

メソッド シグネチャ

OracleThinBlob
extends java.sql.Blob

int getBufferSize()throws java.sql.Exception

int getChunkSize()throws java.sql.Exception

int putBytes(long, int, byte[])throws java.sql.Exception

int getBinaryOutputStream()throws java.sql.Exception

表6-10 OracleThinClob インタフェース

拡張

メソッド シグネチャ

OracleThinClob
extends java.sql.Clob

public OutputStream getAsciiOutputStream()
throws java.sql.Exception;

public Writer getCharacterOutputStream()
throws java.sql.Exception;

public int getBufferSize() throws java.sql.Exception;

public int getChunkSize() throws java.sql.Exception;

public char[] getChars(long l, int i)
throws java.sql.Exception;

public int putChars(long start, char myChars[])
throws java.sql.Exception;

public int putString(long l, String s)
throws java.sql.Exception;

 

back to top previous page next page