001 /* 002 * Copyright (c) 2009 The openGion Project. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 013 * either express or implied. See the License for the specific language 014 * governing permissions and limitations under the License. 015 */ 016 package org.opengion.fukurou.db; 017 018 import org.opengion.fukurou.util.ApplicationInfo; 019 020 021 /** 022 * Transaction インターフェースを継承した、リアルタイ?ランザクションクラスです? 023 * 024 * これは??常のトランザクションクラスと異なり?トランザクション処?しません? 025 * つまり?トランザクション処?行わな?きに、メソ?等?共通的な使用ができるようにする? 026 * Connection のラ??クラスになります? 027 * ただし?こ?クラスが生成されてから、クローズされるまでは、?部に保留した Connection は? 028 * ずっと使?けられます?で、ConnectionFactory から取り出した Connection と同様に 029 * トランザクション性は維持されます? 030 * こ?クラスより作?された?Statement は、取り?し?で、きちんとクロース処? 031 * 032 * こ?クラスでは、コミット?ロールバック、クローズ処??、リアルタイ?行われます? 033 * 034 * @og.rev 5.1.9.0 (2010/08/01) 新規作? 035 * @og.rev 5.3.8.0 (2011/08/01) クラスの?構?変更 036 * 037 * @version 5.0 038 * @author Kazuhiko Hasegawa 039 * @since JDK6.0, 040 */ 041 public class TransactionReal extends TransactionImpl { 042 //public class TransactionReal implements Transaction { 043 // private final Connection conn ; 044 // private final String dbid ; 045 // private ApplicationInfo appInfo = null; 046 // private String dbid = null; 047 // private Connection conn = null; // 5.3.7.0 (2011/07/01) ?? close するように変更します? 048 049 /** 050 * ApplicationInfo <del>と、DBID</del>を指定して作?する、コンストラクター 051 * 052 * こ?クラスは、トランザクション処?しな??合に、従来の Connection の 053 * 代わりに使用することを想定したクラスのオブジェクトを作?します? 054 * 055 * @og.rev 5.3.7.0 (2011/07/01) dbidを引数から削除 056 * @og.rev 5.3.8.0 (2011/08/01) 親クラスを呼ぶように変更 057 * 058 * @param appInfo ?統制用のアクセス?? 059 */ 060 // public TransactionReal( final String dbid , final ApplicationInfo appInfo ) { 061 public TransactionReal( final ApplicationInfo appInfo ) { 062 super( appInfo ); 063 // this.appInfo = appInfo; 064 // this.dbid = dbid; 065 // this.conn = ConnectionFactory.connection( dbid,appInfo ); 066 } 067 068 /** 069 * <del>?キャ?ュされて?、Connection オブジェクトを返します?</del> 070 * <del>??に呼ばれたときに、作?し?以降?、そのコネクションを返します?</del> 071 * 呼ばれる都度、新しい Connection を返します?ただし?Connection 自身は? 072 * ConnectionFactory から取得するため?基本?はキャ?ュされたConnectionです? 073 * 074 * @og.rev 5.3.7.0 (2011/07/01) dbidチェ? 075 * @og.rev 5.3.8.0 (2011/08/01) 親クラスのメソ?を呼ぶ為、? 076 * 077 * @param dbid 接続?ID (こ?クラスでは無視されま? 078 * 079 * @return ??DBID に対応した?Connection オブジェク? 080 */ 081 // public Connection getConnection( final String dbid ) { 082 // if( conn != null ) { close(); } 083 // 084 // this.dbid = dbid; 085 // this.conn = ConnectionFactory.connection( dbid,appInfo ); 086 // return conn ; 087 // } 088 089 /** 090 * コミット??行います? 091 * 092 * これは、呼ばれる都度、リアルタイ?処?ます? 093 * 094 * @og.rev 5.3.8.0 (2011/08/01) 親クラスのメソ?を呼ぶ為、? 095 * 096 * @return 正常:true/異常:false 097 */ 098 // public boolean commit() { 099 // return Closer.commit( conn ); 100 // } 101 102 /** 103 * ロールバック処?行います? 104 * 105 * これは、呼ばれる都度、リアルタイ?処?ます? 106 * 107 * @og.rev 5.3.8.0 (2011/08/01) 親クラスのメソ?を呼ぶ為、? 108 * 109 * @return 正常:true/異常:false 110 */ 111 // public boolean rollback() { 112 // return Closer.rollback( conn ); 113 // } 114 115 /** 116 * トランザクションの、終?処?行います? 117 * 118 * @og.rev 5.3.8.0 (2011/08/01) 親クラスのメソ?を呼ぶ為、? 119 * 120 * @see #close( boolean ) 121 * 122 * @return 正常:true/異常:false 123 */ 124 // public boolean close() { 125 // return close( false ); 126 // } 127 128 /** 129 * コネクションの、終?処?行います? 130 * 131 * 引数は、正常かど?を判定するフラグです?異常の場合?、true をセ?します? 132 * これは、ConnectionFactory のプ?ルに戻すかど?を判断するのに使われます? 133 * ?でも?エラーが発生したコネクションは、??ます? 134 * それ以外?、?ールに戻します? 135 * 136 * @og.rev 5.3.7.0 (2011/07/01) close時に、コネクション?null 化しておく? 137 * @og.rev 5.3.8.0 (2011/08/01) 終???行い、親クラスのrealClose() を呼ぶ? 138 * 139 * @param errFlag [true:エラー状?false:通常] 140 * 141 * @return 正常:true/異常:false 142 */ 143 @Override 144 public boolean close( final boolean errFlag ) { 145 // if( errFlag ) { ConnectionFactory.remove( conn,dbid ); } // 削除 146 // else { ConnectionFactory.close( conn,dbid ); } // 返却 147 148 // conn = null; // 5.3.7.0 (2011/07/01) 149 // return true; 150 151 // 5.3.8.0 (2011/08/01) 終???行い、親クラスのrealClose() を呼ぶ? 152 super.close( errFlag ); 153 finish(); 154 realClose(); 155 156 return true; 157 } 158 }