public final class ConnectionFactory extends Object
データベースのコネクションオブジェクトを取得する為に使用する,ファクトリクラスです。 Connection.connection() メソッドで,Connectionオブジェクトを取得します。 Connection#close() メソッドで,内部的に ConnectionFactory にオブジェクトを戻す 事によって,Connectionオブジェクトのプーリングを行なっています。 コネクションオブジェクトは,プールから貸し出します。 つまり,貸し出し中には,プールには,オブジェクトは残っていません。 その状態で,コネクションオブジェクトをclose()しない場合は,オブジェクトが破棄されて, 貸し出し中カウントと実際のオブジェクト数が食い違い,リソースが不足します。 必ず,作成したオブジェクトは,close()メソッドを呼び出して,プールに返して下さい。 システムリソースの USE_DB_APPLICATION_INFO=true の場合、コネクションにアプリケーション 情報を追記するため、ApplicationInfoオブジェクトを使用します。 このオブジェクトは、jsp/common/session-init.jsp にてユーザー情報とアプリケーション 情報を画面アクセスごとに設定します。
4.0.0.0 (2007/10/16) パッケージ移動(hayabusa/db ⇒ fukurou/db) |
修飾子とタイプ | メソッドと説明 |
---|---|
static void |
close(Connection conn,
String dbid)
コネクションオブジェクトをプールに戻します。
|
static Connection |
connection(String dbid,
ApplicationInfo appInfo)
コネクションオブジェクトを取得します。
|
static String |
getDBName(String dbid)
接続先のDB名に対応した、enum (DBName) を返します(toUpperCase)。
|
static String |
information()
ConnectionFactory の現在の状況(詳細メッセージ)を返します。
|
static String |
information(boolean isDetail)
ConnectionFactory の現在の状況を返します。
|
static void |
init(String defPoolKey,
String xmlFileName)
初期化メソッドです。
|
static void |
realClose()
コネクションオブジェクトを実際にすべてクローズします。
|
static void |
remove(Connection conn,
String dbid)
コネクションオブジェクトを物理的に削除(クローズ)戻します。
|
static boolean |
useParameterMetaData(String dbid)
この接続が、PreparedStatement#getParameterMetaData() を使用するかどうかを判定します。
|
public static void init(String defPoolKey, String xmlFileName)
1)第二引数にXMLファイルをクラスローダ基底からの相対パスで指定した場合は そのXMLを利用してDBConfigオブジェクトを作成します。例:ConnectionFactory.init( CONTEXT_NAME, "../DBConfig.xml") nullの場合はWEB-INF/DBConfig.xmlを利用します。例:ConnectionFactory.init( CONTEXT_NAME, null) 2)キャッシュ初期ConnectionPoolのキーを設定してキャッシュプールを作ります。 この値がnullの場合は"DEFAULT"が設定されます。このクラスを利用する場合は必ず最初にこのメソッドを実行する必要があります。 キャッシュとDBConfigオブジェクトの同期化はされていないので初期化以外での利用は避けて下さい。
defPoolKey
- 初期DBID名(nullの場合は、"DEFAULT")xmlFileName
- DBConfig.xmlファイルのファイル名(nullの場合は、WEB-INF/DBConfig.xml)4.0.0.0 (2007/11/05) 新規作成 |
6.4.3.3 (2016/03/04) DatabaseConfig のコンストラクター修正で、引数の nullチェックは不要。 |
public static Connection connection(String dbid, ApplicationInfo appInfo)
dbid
- 接続先IDappInfo
- アプリ情報オブジェクト2.1.1.3 (2002/11/22) コネクションID が null の場合に DEFAULT から所得するように変更。 |
3.1.0.0 (2003/03/20) Hashtable を使用している箇所で、非同期でも構わない箇所を、HashMap に置換え。 |
3.5.6.2 (2004/07/05) 文字列の連結にStringBuilderを使用します。 |
3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定 |
3.8.8.2 (2007/01/26) USE_DB_APPLICATION_INFO ⇒ pool.useApplicationInfo() 変更 |
4.0.0.0 (2007/10/10) キャッシュされた、初期ConnectionPool を使用 |
4.1.0.1 (2008/01/21) 登録時に、大文字に変換する。 |
6.4.3.3 (2016/03/04) Map#computeIfAbsent で対応する。 |
public static void close(Connection conn, String dbid)
conn
- コネクションオブジェクトdbid
- 接続先ID2.1.1.3 (2002/11/22) コネクションID が null の場合に DEFAULT から所得するように変更。 |
4.0.0.0 (2007/10/10) キャッシュされた、初期ConnectionPool を使用 |
4.1.0.1 (2008/01/21) 登録時に、大文字に変換する。 |
public static void remove(Connection conn, String dbid)
conn
- コネクションオブジェクトdbid
- 接続先ID2.1.1.3 (2002/11/22) コネクションID が null の場合に DEFAULT から所得するように変更。 |
4.0.0.0 (2007/10/10) キャッシュされた、初期ConnectionPool を使用 |
4.1.0.1 (2008/01/21) 登録時に、大文字に変換する。 |
public static void realClose()
4.0.0.0 (2005/01/31) ロジック見直し。 pool.clear() で、基本的にはすべて削除されます。 |
4.0.0.0 (2007/10/10) キャッシュされた、初期ConnectionPool を使用 |
6.4.3.3 (2016/03/04) Map#forEach で対応する。 |
public static String information()
4.0.0.0 (2007/10/10) キャッシュされた、初期ConnectionPool を使用 |
public static String information(boolean isDetail)
isDetail
- 詳細メッセージかどうか [true:詳細メッセージ/false:簡易メッセージ]4.0.0.0 (2007/10/10) キャッシュされた、初期ConnectionPool を使用 |
5.3.4.0 (2011/04/01) 詳細メッセージ用引数を追加 |
5.6.7.3 (2013/08/23) 若干の修正 |
6.4.3.3 (2016/03/04) Map#forEach で対応する。 |
public static boolean useParameterMetaData(String dbid)
dbid
- 接続先ID5.3.8.0 (2011/08/01) 新規追加 |
6.4.3.3 (2016/03/04) EDbid のnullチェックを追加 |
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.