原典情報: $ORACLE_HOME/jdbc/Readme.txt
目次
8 以前のoracle.jdbc.driverパッケージはまもなく廃止
JDK 1.4: ojdbc14.jarおよびorai18n.jarを使用してJDK1.4がサポートされます。
リリース10.1.0.2.0には、次のドライバ・バージョンがあります。
リモートOracleデータベースにアクセスするデータベース内のJavaプログラム用のJDBCドライバ
詳細は、『Oracle Database JDBC開発者ガイドおよびリファレンス』を参照してください。
[ORACLE_HOME]/jdbc/libには、次のファイルが含まれています。
JDK 1.2およびJDK 1.3用のクラス。OracleのObject型およびCollection型によるNLSサポート用のクラスを除く、JDBCドライバ・クラスが含まれています。
classes12.jarと同じですが、クラスはjavac -gを使用してコンパイル済で、一部のトレース情報が含まれています。
classes12.jarと同じですが、Oracle Dynamic Monitoring Service(DMS)をサポートするための追加コードが含まれています。
classes12dms.jarと同じですが、クラスはjavac -gを使用してコンパイル済で、一部のトレース情報が含まれています。
JDK 1.4用のクラス。OracleのObject型およびCollection型によるNLSサポート用のクラスを除く、JDBCドライバ・クラスが含まれています。
ojdbc14.jarと同じですが、クラスはjavac -gを使用してコンパイル済で、一部のトレース情報が含まれています。
(ojdbc14dms.jarとojdbc14dms_g.jarは、10.1.0.0では提供されません。ただし、どちらも本番リリースで使用可能です。)
CachedRowSetやWebRowSetなど、javax.sql.rowsetインタフェースを実装するクラス。JDK 1.2、1.3および1.4で使用されます。
JDK 1.2、1.3および1.4用のNLSクラス。OracleのObject型とCollection型によるNLSサポート用のクラスが含まれています。このjarファイルにより、古いnls_charset jar/zipファイルが置き換えられます。
[ORACLE_HOME]/jdbc/doc/javadoc.tarには、JDBCのJavadocが含まれています。このリリースには、Oracle JDBCのパブリック・クラスのパブリックAPIに関するJavadocファイルのベータ版が含まれています。
[ORACLE_HOME]/jdbc/demo/demo.tarには、JDBCのサンプル・プログラムが含まれています。
[ORACLE_HOME]\binディレクトリには、JDBC OCIドライバ用ライブラリocijdbc10.dllおよびheteroxa10.dllがあります。
[ORACLE_HOME]/libディレクトリには、JDBC OCIドライバ用の共有ライブラリlibocijdbc10.so、libocijdbc10_g.so、libheteroxa10.soおよびlibheteroxa10_g.soがあります。
サーバー側内部JDBCドライバは完全なNLSサポートを提供します。NLS拡張機能のjarファイルは不要です。この項の説明は、Oracle JDBC ThinドライバとOracle JDBC OCIドライバにのみ適用されます。
基本のjarファイル(classes12.jarおよびojdbc14.jar)には、次のように完全なNLSサポートの提供に必要なクラスがすべて含まれています。
Object型またはCollection型のCHAR/VARCHARデータ・メンバーに他のキャラクタ・セットを使用する必要がある場合は、CLASSPATHにNLS拡張機能のjarファイル(orai18n.jar)を含める必要があります。新規のorai18n.jarにより、以前のリリースのnls_charset*.*ファイルが置き換えられます。
NLS拡張機能のjarファイルは、多数のキャラクタ・セットをサポートする必要があるため大型であることに注意してください。必要な場合は、拡張機能のjarファイルから必要なクラスのみを含めるように選択できます。そのためには、最初にNLS拡張機能のjarファイルを解凍し、必要なファイルのみをCLASSPATHに指定します。拡張機能のjarファイルでは、各クラスに次の形式の名前が使用されています。
lx20<OracleCharacterSetId>.glb キャラクタ・セット
lx1<OracleTerritoryId>.glb 地域
lx3<OralceLinguisticSortId>.glb 言語ソート
lx4<OracleMapingId>.glb マッピング
<Oracle*>は、対応するOracle NLS IDの16進表現です。
また、各国対応のJDBCエラー・メッセージ・ファイルを選択的に含めることもできます。メッセージ・ファイルは、classes12*.jarおよびojdbc14*.jar内のoracle/jdbc/driver/Messages_*.propertiesファイルに含まれています。CLASSPATHには、Oracle JDBC Driversの複数バージョンを指定しないでください。Oracle Installerを実行すると、Oracle JDBC Driversが[ORACLE_HOME]/jdbcディレクトリにインストールされます。
Oracle JDBC Driversの使用方法の詳細は、『Oracle Database JDBC開発者ガイドおよびリファレンス』を参照してください。この項では、ヒントのみを説明します。これらのヒントは網羅的ではありません。
あくまでもJDBCプログラムで必要な事項です。
1) JDBCを使用するプログラムに必要なJDBCクラスをインポートします。 次に例を示します。
import java.sql.*;
import java.math.*;
OracleDataSourceを使用するには、次のように入力する必要があります。
import oracle.jdbc.pool.OracleDataSource;
2) OracleDataSourceインスタンスを作成します。
OracleDataSource ods = new OracleDataSource( );
3) デフォルトのプロパティを使用しない場合は、必要なプロパティを設定します。JDBCドライバごとに異なる接続URLを使用する必要があります。
ods.setUser("my_user");
ods.setPassword("my_password");
JDBC OCIドライバの場合
Bequeathed接続を確立するには、URLを次のように設定します。
ods.setURL("jdbc:oracle:oci:@");
リモート接続を確立するには、URLを次のように設定します。
ods.setURL("jdbc:oracle:oci:@<database>");
<database>は、TNSEntryNameまたはtnsnames.oraに定義されているSQL*Netの名前/値ペアです。
JDBC Thinドライバまたはサーバー側Thinドライバの場合
ods.setURL("jdbc:oracle:thin:@<database>");
<database>は、//<host>:<port>/<service_name>形式の文字列またはSQL*Netの名前/値ペアです。
サーバー側JDBC内部ドライバの場合
ods.setURL("jdbc:oracle:kprb:");
後続の「:」が必要であることに注意してください。サーバー側内部ドライバを使用する場合は、常に実行中のデータベースに接続します。また、次のように指定できます。
Connection conn = new oracle.jdbc.OracleDriver().defaultConnection( );
4) OracleDataSourceクラスに定義されているgetConnection()メソッドを使用して、データベースへの接続をオープンします。
Connection conn = ods.getConnection( );
Oracle9iからは、JDBCへのOracleの拡張機能はoracle.jdbcパッケージで提供されます。このパッケージには、java.sql内のクラスとインタフェースでパブリックJDBC APIが指定されるのと同様の方法で、Oracleの拡張機能を指定するクラスとインタフェースが含まれています。
9iの初期バージョン以降は、oracle.jdbc.driverパッケージの使用が廃止されています。コードでは、かわりにoracle.jdbcパッケージを使用してください。Oracle9i以降の新機能には、oracle.jdbc.driverパッケージの使用との互換性がありません。このリリースでは下位互換性を提供するために古いoracle.jdbc.driverパッケージも引き続きサポートされますが、このパッケージは最終的には次回のメジャー・リリースで削除されます。古いoracle.jdbc.driverパッケージを使用する既存のアプリケーションが残っている場合は、この時点でコードを変換してください。
ソース内でoracle.jdbc.driverをoracle.jdbcで置き換えて再コンパイルするだけで、コードを変換できます。この操作は、ピース単位では実行できません。アプリケーションで参照されるクラスとインタフェースをすべて変換する必要があります。
OracleのObjectを使用したコールインとインスタンス・メソッドの例は、次のファイルにあります。
[ORACLE_HOME]/javavm/demo/demo.zip
このファイルを解凍すると、次のディレクトリに例が抽出されます。
[ORACLE_HOME]/javavm/demo/examples/jsp
次のリストに、既知の問題または制限事項を示します。
- LONGデータ型とVARCHAR2データ型へのアクセス時。
- setString()およびsetCharacterStream()を使用したデータのバインド時。
注意: 妥当な変換のほとんどは機能しますが、すべてが機能するとはかぎりません。妥当と思われる変換が見つかっても機能しない場合は、オラクル社カスタマ・サポート・センターにTARを提供してください。
サポート |
タイプ |
同時実行性 |
なし |
TYPE_FORWARD_ONLY |
CONCUR_READ_ONLY |
なし |
TYPE_FORWARD_ONLY |
CONCUR_UPDATABLE |
なし |
TYPE_SCROLL_INSENSITIVE |
CONCUR_READ_ONLY |
あり |
TYPE_SCROLL_INSENSITIVE |
CONCUR_UPDATABLE |
あり |
TYPE_SCROLL_SENSITIVE |
CONCUR_READ_ONLY |
あり |
TYPE_SCROLL_SENSITIVE |
CONCUR_UPDATABLE |
新規の日時データ型へのアクセスは、JDK 1.2、1.3および1.4を使用する3つのJDBCドライバすべてでサポートされます。これらの日時データ型は、TIMESTAMP、TIMESTAMPTZおよびTIMESTAMPLTZです。また、PreparedStatement.setString()やResultset.getString()などのString APIは、これらのデータ型には機能しません。setTIMESTAMP*()およびgetTIMESTAMP*()を使用する必要があります。