robbie.dao.x
クラス XDao

java.lang.Object
  拡張robbie.dao.BaseDao
      拡張robbie.dao.x.XDao
すべての実装インタフェース:
java.io.Serializable
直系の既知のサブクラス:
GeneralizedXDao

public class XDao
extends BaseDao

XDAOクラス。

 このクラスは、XMLファイル内に定義された、SQLとデータベースリソースを使用して、
 データベースアクセスを行なうDAOクラスです。XML定義を利用したい場合には、
 このクラスを継承したクラスを業務要件毎に実装してください。
 また、このクラスにはデフォルトで、1トランザクションの検索処理と更新処理のみが実装されています。
 拡張を行なう場合には、このクラスを継承したクラスを作成し、XMLの<class-name>属性に
 クラス名と利用するリソースを設定してください。
 

関連項目:
BaseDao, XQueryFactory, DbResource, 直列化された形式

フィールドの概要
static int CATCH_SQL_EXCEPTION_COUNT
          updateメソッド実行時にSQLExceptionをCatchした際に返す更新件数。
protected  java.sql.SQLException exception
          直前の更新処理で発生したSQLException。
protected  XQueryFactory queryFactory
          XQueryFactoryクラスのインスタンス。
protected  DbResource resource
          XDbResourceクラスのインスタンス。
 
コンストラクタの概要
XDao()
           
 
メソッドの概要
 void configure()
          configure()メソッドのオーバライド。
 java.sql.SQLException getSQLException()
          直前の更新処理で取得したSQLExceptionを返します。
 java.util.List query(java.lang.String id, java.lang.Object params)
          問い合わせを実行し、結果をMapのListで返します。
 java.lang.Object[][] queryForArray(java.lang.String id, java.lang.Object params)
          問い合わせを実行し、結果をObject[][]で返します。
 java.util.List queryForBeans(java.lang.String id, java.lang.Object params)
          問い合わせを実行し、結果をJavaBeansのListで返します。
 java.util.List queryForDynaBean(java.lang.String id, java.lang.Object params)
          問い合わせを実行し、結果をDynaBeanのListで返します。
 void release()
          データベース接続リソースを開放します。
 void setQueryFactory(XQueryFactory queryFactory)
          XQueryFactoryインスタンスをセットします。
 void setResource(DbResource resource)
          XDbResourceインスタンスをセットします。
 int update(java.lang.String id, java.lang.Object params)
          更新処理を実行します。
 
クラス robbie.dao.BaseDao から継承したメソッド
bindParameters, closeConnection, closeQuery, closeResultSet, closeStatement, commit, executeQuery, executeQueryForArray, executeQueryForBeans, executeQueryForDynaBean, executeUpdate, isClosed, openQuery, openStatement, rollback, setAutoCommit
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

CATCH_SQL_EXCEPTION_COUNT

public static final int CATCH_SQL_EXCEPTION_COUNT
updateメソッド実行時にSQLExceptionをCatchした際に返す更新件数。

実際には-1が返されます。

関連項目:
定数フィールド値

queryFactory

protected XQueryFactory queryFactory
XQueryFactoryクラスのインスタンス。

 この変数を利用して、実行するSQLインスタンスを取得します。
 サブクラスでは以下のようにして、SQLインスタンスを取得して
 拡張実装を行なってください。
 
 Query query = queryFactory.createSQLInstance(id, params);
 
 

関連項目:
Query, XQueryFactory.createQueryInstance(String, Object)

resource

protected DbResource resource
XDbResourceクラスのインスタンス。

 この変数を利用して、データベースへのConnectionを取得します。
 サブクラスでは以下のようにして、Connectionインスタンスを取得して
 拡張実装を行なってください。
 
 java.sql.Connection conn = resource.getConnection();
 
 

関連項目:
DbResource.getConnection()

exception

protected java.sql.SQLException exception
直前の更新処理で発生したSQLException。

コンストラクタの詳細

XDao

public XDao()
メソッドの詳細

setQueryFactory

public void setQueryFactory(XQueryFactory queryFactory)
XQueryFactoryインスタンスをセットします。

パラメータ:
queryFactory - XSQLFactoryインスタンス

setResource

public void setResource(DbResource resource)
XDbResourceインスタンスをセットします。

パラメータ:
resource - XmlDBResourceインスタンス

getSQLException

public java.sql.SQLException getSQLException()
直前の更新処理で取得したSQLExceptionを返します。

戻り値:
直前に取得したSQLException

configure

public void configure()
configure()メソッドのオーバライド。

このXDaoでは何も実装してません。 このメソッドは初期化処理としてXDaoかたインスタンス作成時に呼び出されています。 XDaoのサブクラスで初期化が必要な場合があれば、オーバライドして使用してください。


query

public java.util.List query(java.lang.String id,
                            java.lang.Object params)
問い合わせを実行し、結果をMapのListで返します。

 条件パラメータがMapではなくDynaBeanまたはJavaBeansのプロパティを使用します。
 ただし、Mapのインスタンスであった場合にはMapの要素を条件パラメータとします。
 このメソッドは1つのトランザクションを実行するように実装されていますが、
 DataSourceリソースを使用して、JTA等のトランザクションコンテナ上で
 実行されている場合には、コンテナのトランザクションが優先されます。
 また、このメソッドの中でコネクションを取得し、検索を実行してListを返した後、
 コネクションをcloseします。
 (JDBCリソースの場合はコミットのみでcloseされません。また、JTAの場合には実装に
 よります。)
 

パラメータ:
id - queryのid
params - バインドする条件パラメータを持つMap、JavaBeans、DynaBean
戻り値:
検索結果のMapのList
導入されたバージョン:
1.3.0

queryForArray

public java.lang.Object[][] queryForArray(java.lang.String id,
                                          java.lang.Object params)
問い合わせを実行し、結果をObject[][]で返します。

 条件パラメータがMapではなくDynaBeanまたはJavaBeansのプロパティを使用します。
 ただし、Mapのインスタンスであった場合にはMapの要素を条件パラメータとします。
 Object[0][*]はカラム名のヘッダになります。
 データだけ使用したい場合には、Object[1][*]から使用してください
 

パラメータ:
id - queryのid
params - バインドする条件パラメータを持つMap、JavaBeans、DynaBean
戻り値:
検索結果の2次元配列
導入されたバージョン:
1.3.0

queryForBeans

public java.util.List queryForBeans(java.lang.String id,
                                    java.lang.Object params)
問い合わせを実行し、結果をJavaBeansのListで返します。

 条件パラメータがMapではなくDynaBeanまたはJavaBeansのプロパティを使用します。
 ただし、Mapのインスタンスであった場合にはMapの要素を条件パラメータとします。
 

パラメータ:
id - queryのid
params - バインドする条件パラメータを持つMap、JavaBeans、DynaBean
戻り値:
JavaBeansのList
導入されたバージョン:
1.3.0

queryForDynaBean

public java.util.List queryForDynaBean(java.lang.String id,
                                       java.lang.Object params)
問い合わせを実行し、結果をDynaBeanのListで返します。

 条件パラメータがMapではなくDynaBeanまたはJavaBeansのプロパティを使用します。
 ただし、Mapのインスタンスであった場合にはMapの要素を条件パラメータとします。
 

パラメータ:
id - queryのid
params - バインドする条件パラメータを持つMap、JavaBeans、DynaBean
戻り値:
DynaBeanのList
導入されたバージョン:
1.3.0

update

public int update(java.lang.String id,
                  java.lang.Object params)
更新処理を実行します。

 このメソッドはSQLExceptionが発生した場合には、-1を返します。
 -1が返された場合にはそのSQLExceptionをメンバ変数として保持しますので、
 必要な場合にはgetSQLException()からそのSQLExceptionを取得することが可能です。
 このメソッドは1つのトランザクションを実行するように実装されていますが、
 DataSourceリソースを使用して、JTA等のトランザクションコンテナ上で
 実行されている場合には、コンテナのトランザクションが優先されます。
 

パラメータ:
id - queryのid
params - バインドする条件パラメータを持つMap、JavaBeans、DynaBean
戻り値:
更新件数、ただしSQLExceptionが発生した場合には-1

release

public void release()
データベース接続リソースを開放します。

データベース接続処理が全て完了したら、必ずこのメソッドを呼んでください。