JDBCサンプル・プログラム

JDBCは、SQL問合せおよびデータ管理に使用される業界標準のJava APIです。このページでは、JDBCを使用してOracle TimesTen In-Memory Databaseにアクセスする一連のサンプル・プログラムを提供します。サポートされているJDKバージョンについては、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』を参照してください。

  プログラム 説明
 asyncJMS.java 

このプログラムは、TimesTen JMS/XLA実装を使用して、メッセージを処理します。

a) XLAユーザーとしてデータベースに接続する
b) CUSTOMER表に対するコミット済の変更をリスニングする
c) JMSサブスクライバを使用する
d) onMessage()およびJMS MessageListenerを介してメッセージを非同期に受信する
e) コンソールに変更記録を表示する
f) [CTRL]+[C]が入力されたら、データベースから切断する

level1からlevel4のJDBCプログラムか、または(input4.datスクリプトで)ttIsqlを使用すると、コミット済の変更をCUSTOMER表に適用できます。
 level1.java  このプログラムは、TimesTen JDBC DriverManagerインタフェースを使用して、TimesTenデータベースでの基本操作を示します。
a) com.timesten.jdbc.timesTenDriverインタフェースを使用して接続する
b) 入力ファイルinput1.datから読み込まれたすべてのデータをCUSTOMER表に挿入する
c) ttOptUpdateStatsをコールして統計を更新する
d) CUSTOMER表から選択し、結果セットをフェッチしてstdoutに出力する
e) データベースから切断する
 level2.java  このプログラムは、TimesTen DataSourceインタフェースを使用して、TimesTenデータベースでの基本操作を示します。
a) TimesTenDataSourceインタフェースを使用して接続する
b) datfilesサブディレクトリにあるinput2.datファイルから読み取られたすべてのデータを挿入する
c) ttOptUpdateStatsをコールして統計を更新する
d) PRODUCT表から重複する製品データを削除する
e) 製品価格を10%上げてPRODUCT表を更新する
f) PRODUCT表からデータを選択し、結果セットをフェッチしてstdoutに出力する
g) データベースから切断する
 level3.java  このプログラムは、TimesTen JDBCドライバを使用して、次の注文処理を実行します。
a) TimesTenDataSourceインタフェースを使用してデータベースに接続する
b) input3.datファイルのすべての注文をORDERS表およびORDER_ITEM表に挿入して処理し、入手可能な数量を確認するためにINVENTORY表から選択し、注文の数量を差し引いてINVENTORY表を更新する。在庫に十分な数量がない場合、プログラムはトランザクションをロールバックして、メッセージを発行する
c) データベースから切断する
 level4.java  このプログラムは、level3.javaプログラムのマルチスレッド・バージョンです。このプログラムは、複数のスレッドを使用してアプリケーションのスループットを増やします。
  plsqlJDBC.java

このサンプル・プログラムは、JDBCを使用し、4つの異なる方法で共通のPL/SQLパッケージ(emp_pkgおよびsample_pkg)にアクセスします。

- INおよびOUTパラメータを使用してストアド・プロシージャをコールする
- INおよびOUTパラメータを使用してストアド・ファンクションをコールする
- 無名ブロックをコールし、ブロックとのホスト変数のやりとりを行う
- ストアド・プロシージャをコールして参照カーソルを開き、JDBCを使用して参照カーソルの結果セットを処理する

このプログラムが動作するには、EMP表と、emp_pkgおよびsample_pkg PL/SQLパッケージが存在している必要があります。


  syncJMS.java

このプログラムは、TimesTen JMS/XLA実装を使用して、メッセージを処理します。

a) XLAユーザーとしてデータベースに接続する
b) ANY表に対するコミット済の変更をリスニングする(デフォルト設定をappuser.customer表にする)
c) JMSサブスクライバを使用する
d) getルーチンのreceiveメソッドを介してメッセージを同期的に受信する
e) コンソールに変更記録を表示する
f) [CTRL]+[C]が入力されたら、データベースから切断する

level1からlevel4のJDBCプログラムか、または(input4.datスクリプトで)ttIsqlを使用すると、コミット済の変更をCUSTOMER、PRODUCT、ORDERS、ORDER_ITEMおよびINVENTORY表に適用できます。
  Tptbm.java このプログラムでは、マルチユーザー・スループット・ベンチマークが実装されます。デフォルトでは、トランザクション・ミックスは、80%のSELECT(読取り)トランザクションおよび20%のUPDATE(書込み)トランザクションで構成されています。トランザクション・ミックスには、SELECTおよびUPDATEの他に、INSERTを含めることもできます。SELECTUPDATEおよびINSERTの割合は、コマンドラインで指定します。各トランザクションは、1つ以上のSQL操作で構成されます。

ベンチマークは、最初にデータ・ストアにデータを移入し、そのデータ・ストアに対してトランザクション・ミックスを実行します。トランザクション・ミックスの一部として挿入されるタプルの数は、データベースに最初に移入されるタプルの数を超えることができません。

ベンチマークの測定エラーは、最大で2秒です。200秒間を超えるロードの場合、この測定エラーは無視できます。ベンチマーク用に提案されているロードは、600秒以上続くものです。

このテスト用のスキーマは、プログラム・ソース・ファイルtptbm.javaに示されています。
 TTJdbcExamples.java  このプログラムでは、TimesTen JDBC DriverManagerインタフェースを使用して、次の操作を行う方法を示します。
a) 接続および切断する
b) いくつかのDDLおよびDML操作(表の作成、索引の作成、文の準備、表への挿入および表からの選択)を実行する
c) 問合せ計画に影響を与える変更を行う
d) バッチ更新を実行する
  JDBC接続プール サンプルJDBC接続プールの実装は、quickstart/sample_code/jdbc/connection_poolディレクトリにあります。

前述のJDBCサンプル・プログラムは、quickstart/sample_code/jdbcディレクトリにあります。

インストールされているプラットフォームでサンプル・プログラムをコンパイルして実行する方法については、「コンパイルおよび実行」を参照してください。

Oracle TimesTenでのJavaプログラミングの詳細は、『Oracle TimesTen In-Memory Database Java開発者ガイド』を参照してください。