データベースとの接続を確立して、CwDBConnection オブジェクトを戻します。
構文
CwDBConnection getDBConnection(String connectionPoolName) CwDBConnection getDBConnection(String connectionPoolName, boolean implicitTransaction)
パラメーター
次の値が有効です。
戻り値
CwDBConnection オブジェクトを戻します。
例外
CwDBConnectionFactoryException - データベース接続の確立中にエラーが発生した場合。
注記
getDBConnection() メソッドは、connectionPoolName で指定されている接続プールから接続を取得します。
この接続によって、接続に関連付けられたデータベースへの照会および更新の実行が可能になります。特定の接続プールにおけるすべての接続は、同じデータベースに関連付けられています。メソッドは CwDBConnection オブジェクトを戻して、それによって照会の実行およびトランザクションの管理が可能になります。詳細については、CwDBConnection クラスのメソッドを参照してください。
デフォルトでは、暗黙的なトランザクション・ブラケットをすべての接続でトランザクション・プログラミング・モデルとして使用します。トランザクション・プログラミング・モデルを特定の接続 に対して指定するには、boolean 値を付けて、getDBConnection() メソッドに対してオプションの implicitTransaction 引き数として目的のトランザクション・プログラミング・モデルを示します。
次の 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 引き数は含まれません。そのため、この接続は、トランザクション・プログラミング・モデルとして、暗黙的なトランザクション・ブラケットを使用します (トランザクション・プログラミング・モデルが System Manager の「コラボレーション・プロパティー」ダイアログでオーバーライドされる場合を除く)。その結果、この例では、beginTransaction()、commit()、および rollback() との明示的なトランザクション境界は指定されません。実際に、これらのトランザクション・メソッドの 1 つを暗黙的なトランザクション・ブラケットで呼び出そうとすると、CwDBTransactionException 例外が生成されます。
次の例でも、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 はそのトランザクションを暗黙的なものとみなして処理します。
関連項目