getDBConnection()

データベースへの接続を確立して、CwDBConnection オブジェクトを戻します。

構文

CwDBConnection getDBConnection(String connectionPoolName)
 CwDBConnection getDBConnection(String connectionPoolName, 
    boolean implicitTransaction)
 

パラメーター

connectionPoolName
有効な接続プールの名前。接続がこの接続プールに指定されているデータベースに、メソッドは接続されます。

implicitTransaction
トランザクション・プログラミング・モデルを、接続に関連付けられたデータベースに対して使用することを指示する boolean 値です。 次の値が有効です。

true
データベースは、暗黙的なトランザクション・ブラケットを使用します

false
データベースは、明示的なトランザクション・ブラケットを使用します

戻り値

CwDBConnection オブジェクトを戻します。

例外

CwDBConnectionFactoryException - データベース接続の確立中にエラーが発生した場合

注記

getDBConnection() メソッドは、connectionPoolName で指定された接続プールから接続を取得します。

この接続によって、接続に関連付けられたデータベースへの照会および更新の実行が可能になります。個々の接続プールでのすべての接続は、同じデータベースに対して行われます。メソッドは CwDBConnection オブジェクトを戻して、それによってデータベースでの照会の実行およびトランザクションの管理が可能になります。詳しくは、CwDBConnection クラスのメソッドを参照してください。

デフォルトでは、暗黙的なトランザクション・ブラケットをすべての接続でトランザクション・プログラミング・モデルとして使用します。特定の接続に対して トランザクション・プログラミング・モデルを指定するには、getDBConnection() メソッドのオプションの implicitTransaction 引き数として目的のトランザクション・プログラミング・モデルを示す boolean 値を指定します。 以下の getDBConnection() 呼び出しは、ConnPool 接続プールから取得された接続に明示的なトランザクション・ブラケットを指定します。

conn = getDBConnection("ConnPool",false);
 

マップ・インスタンスの実行が完了すると、接続が解除されます。 release() メソッドを使用して、接続を明示的に閉じることができます。接続が解除されたかどうかを、isActive() メソッドを使用して判断することができます。

次の例では、CustConnPool 接続プールにおいて、接続に関連付けられたデータベースへの接続を確立します。その後で、接続は暗黙的なトランザクションを使用し、データベース表に行を挿入および更新します。

CwDBConnection connection = getDBConnection("CustConnPool");
  
 // Insert a row
 connection.executeSQL("insert...");
  
 // Update rows...
 connection.executeSQL("update...");
 

getDBConnection() に先行する呼び出しに、オプションの第 2 引き数は含まれません。そのため、この接続は、トランザクション・プログラミング・モデルとして、暗黙的なトランザクション・ブラケットを使用します (トランザクション・プログラミング・モデルが「マップ・プロパティー」ダイアログでオーバーライドされる場合を除く)。

したがって、この接続は、beginTransaction()commit()、および rollback() で明示的なトランザクション境界を指定しません。実際に、これらのトランザクション・メソッドの 1 つを暗黙的なトランザクション・ブラケットで呼び出そうとすると、CwDBTransactionException 例外が生じます。

注:
implicitDBTransactionBracketing() メソッドを使用して、現行のトランザクション・プログラミング・モデルをチェックすることができます。

次の例でも、CustConnPool 接続プールにおいて、接続に関連付けられたデータベースへの接続を確立します。しかし、この例では接続の明示的なトランザクション・ブラケットの使用が指定されます。その結果、次のような明示的なトランザクションを使用してデータベース表に行を挿入する、あるいはデータベース表の行を更新します。

CwDBConnection connection = getDBConnection("CustConnPool", false);
  
 // Begin a transaction
 connection.beginTransaction();
  
 // Insert a row
 connection.executeSQL("insert...");
  
 // Update rows...
 connection.executeSQL("update...");
  
 // Commit the transaction
 connection.commit();
  
 // Release the connection
 connection.release();
 

getDBConnection() に先行する呼び出しには、オプションの implicitTransaction 引き数が含まれています。そのため、トランザクション・プログラミング・モデルが明示的なトランザクション・ブラケットに設定されます。したがって、この例では明示的なトランザクション呼び出しを使用して、トランザクションの境界を示します。これらのトランザクション・メソッドが省略されると、InterChange Server Express はそのトランザクションを暗黙的なものと見なして処理します。

参照項目

CwDBConnection クラス, implicitDBTransactionBracketing(), isActive(), release()

Copyright IBM Corp. 2004