org.seasar.extension.jdbc.query
クラス AbstractModuleCall<S extends ModuleCall<S>>

java.lang.Object
  上位を拡張 org.seasar.extension.jdbc.query.AbstractQuery<S>
      上位を拡張 org.seasar.extension.jdbc.query.AbstractModuleCall<S>
型パラメータ:
S - ModuleCallのサブタイプです。
すべての実装されたインタフェース:
ModuleCall<S>, Query<S>, SqlLogger
直系の既知のサブクラス:
AbstractFunctionCall, AbstractProcedureCall

public abstract class AbstractModuleCall<S extends ModuleCall<S>>
extends AbstractQuery<S>
implements ModuleCall<S>

永続格納モジュール(ストアドプロシージャまたはストアドファンクション)を呼び出す抽象クラスです。

作成者:
koichik

入れ子のクラスの概要
static class AbstractModuleCall.ParamDesc
          パラメータとして渡されたDTOのフィールドを表すクラスです。
 
フィールドの概要
protected  int fetchSize
          フェッチ数
protected  boolean functionCall
          ファンクション呼び出しの場合はtrue
protected static boolean initialized
          DisposableUtil に登録済みならtrue
protected  int maxRows
          最大行数
protected  java.util.List<Param> nonParamList
          MS SQLServerのような結果セットをOUTパラメータにマッピングしない場合のパラメータのリスト
protected static java.util.concurrent.ConcurrentMap<java.lang.Class<?>,AbstractModuleCall.ParamDesc[]> paramDescCache
          プロシージャまたはファンクションの引数として使用されるDTOのフィールドを表すAbstractModuleCall.ParamDescのキャッシュ
protected  java.lang.Object parameter
          パラメータ
 
クラス org.seasar.extension.jdbc.query.AbstractQuery から継承されたフィールド
callerClass, callerMethodName, completed, executedSql, jdbcManager, logger, paramList, queryTimeout
 
コンストラクタの概要
AbstractModuleCall(JdbcManagerImplementor jdbcManager, boolean functionCall)
          インスタンスを構築します。
 
メソッドの概要
protected  Param addNonParam(java.lang.reflect.Field field)
          直接パラメータでは指定しないパラメータを追加します。
protected  void addParam(java.lang.reflect.Field field, java.lang.Class<?> paramClass, ValueType valueType, ParamType paramType)
          パラメータを追加します。
protected  AbstractModuleCall.ParamDesc[] createParamDesc(java.lang.Class<?> dtoClass)
          パラメータとして渡されたDTOのフィールドを表すAbstractModuleCall.ParamDescの配列を作成して返します。
 S fetchSize(int fetchSize)
          フェッチ数を設定します。
protected  java.sql.CallableStatement getCallableStatement(JdbcContext jdbcContext)
          呼び出し可能なステートメントを返します。
 int getFetchSize()
          フェッチ数を返します。
 int getMaxRows()
          最大行数を返します。
protected  Param getNonParam(int index)
          直接パラメータでは指定しないパラメータを返します。
protected  int getNonParamSize()
          直接パラメータでは指定しないパラメータの数を返します。
protected  AbstractModuleCall.ParamDesc[] getParamDescs(java.lang.Class<?> dtoClass)
          パラメータとして渡されたDTOのフィールドを表すAbstractModuleCall.ParamDescの配列を返します。
 java.lang.Object getParameter()
          パラメータを返します。
protected  java.sql.ResultSet getResultSet(java.sql.CallableStatement cs)
          OUT/INOUTパラメータとは別に戻される結果セットを返します。
protected  void handleNonParamResultSets(java.sql.CallableStatement cs, boolean resultSetGettable)
          OUTパラメータにマッピングされない結果セットを処理します。
protected  void handleOutParams(java.sql.CallableStatement cs)
          OUTパラメータを処理します。
protected  java.lang.Object handleResultList(java.lang.Class<?> elementClass, java.sql.ResultSet rs)
          複数の行を持つ結果セットを処理します。
protected  java.lang.Object handleResultSet(java.lang.reflect.Field field, java.sql.ResultSet rs)
          結果セットを処理します。
protected  java.lang.Object handleSingleResult(java.lang.Class<?> resultClass, java.sql.ResultSet rs)
          1行だけの結果セットを処理します。
protected  void initialize()
          初期化します。
 S maxRows(int maxRows)
          最大行数を設定します。
protected  void prepareOutParams(java.sql.CallableStatement cs)
          OUTパラメータを準備します。
protected  void prepareParameter()
          パラメータの準備をします。
protected  void setupCallableStatement(java.sql.CallableStatement cs)
          呼び出し可能なステートメントをセットアップします。
 
クラス org.seasar.extension.jdbc.query.AbstractQuery から継承されたメソッド
addParam, addParam, addParam, addParam, assertNotCompleted, callerClass, callerMethodName, completed, getCallerClass, getCallerMethodName, getExecutedSql, getJdbcManager, getParam, getParamClasses, getParamSize, getParamValues, getParamValueTypes, getQueryTimeout, getValueType, handleResultSet, logSql, logSql, prepare, prepareCallerClassAndMethodName, prepareInParams, queryTimeout, resetParams, toStringArray
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース org.seasar.extension.jdbc.Query から継承されたメソッド
callerClass, callerMethodName, queryTimeout
 

フィールドの詳細

initialized

protected static boolean initialized
DisposableUtil に登録済みならtrue


paramDescCache

protected static final java.util.concurrent.ConcurrentMap<java.lang.Class<?>,AbstractModuleCall.ParamDesc[]> paramDescCache
プロシージャまたはファンクションの引数として使用されるDTOのフィールドを表すAbstractModuleCall.ParamDescのキャッシュ


maxRows

protected int maxRows
最大行数


fetchSize

protected int fetchSize
フェッチ数


parameter

protected java.lang.Object parameter
パラメータ


nonParamList

protected java.util.List<Param> nonParamList
MS SQLServerのような結果セットをOUTパラメータにマッピングしない場合のパラメータのリスト


functionCall

protected boolean functionCall
ファンクション呼び出しの場合はtrue

コンストラクタの詳細

AbstractModuleCall

public AbstractModuleCall(JdbcManagerImplementor jdbcManager,
                          boolean functionCall)
インスタンスを構築します。

パラメータ:
jdbcManager - 内部的なJDBCマネージャ
functionCall - ファンクション呼び出しの場合はtrue
メソッドの詳細

maxRows

public S maxRows(int maxRows)
インタフェース ModuleCall の記述:
最大行数を設定します。

定義:
インタフェース ModuleCall<S extends ModuleCall<S>> 内の maxRows
パラメータ:
maxRows - 最大行数
戻り値:
このインスタンス自身

fetchSize

public S fetchSize(int fetchSize)
インタフェース ModuleCall の記述:
フェッチ数を設定します。

定義:
インタフェース ModuleCall<S extends ModuleCall<S>> 内の fetchSize
パラメータ:
fetchSize - フェッチ数
戻り値:
このインスタンス自身

prepareParameter

protected void prepareParameter()
パラメータの準備をします。


addParam

protected void addParam(java.lang.reflect.Field field,
                        java.lang.Class<?> paramClass,
                        ValueType valueType,
                        ParamType paramType)
パラメータを追加します。

パラメータ:
field - パラメータとなるフィールド
paramClass - パラメータのクラス
valueType - 値タイプ
paramType - パラメータのタイプ

getCallableStatement

protected java.sql.CallableStatement getCallableStatement(JdbcContext jdbcContext)
呼び出し可能なステートメントを返します。

パラメータ:
jdbcContext - JDBCコンテキスト
戻り値:
呼び出し可能なステートメント

setupCallableStatement

protected void setupCallableStatement(java.sql.CallableStatement cs)
呼び出し可能なステートメントをセットアップします。

パラメータ:
cs - 呼び出し可能なステートメント

prepareOutParams

protected void prepareOutParams(java.sql.CallableStatement cs)
OUTパラメータを準備します。

パラメータ:
cs - 呼び出し可能なステートメント

handleNonParamResultSets

protected void handleNonParamResultSets(java.sql.CallableStatement cs,
                                        boolean resultSetGettable)
OUTパラメータにマッピングされない結果セットを処理します。

このメソッドはhandleOutParams(CallableStatement)よりも前に呼び出さなくてはなりません。

パラメータ:
cs - 呼び出し可能なステートメント
resultSetGettable - 呼び出し可能なステートメントから結果セットを取得可能な場合true

getResultSet

protected java.sql.ResultSet getResultSet(java.sql.CallableStatement cs)
OUT/INOUTパラメータとは別に戻される結果セットを返します。

パラメータ:
cs - 呼び出し可能なステートメント
戻り値:
結果セット

handleOutParams

protected void handleOutParams(java.sql.CallableStatement cs)
OUTパラメータを処理します。

パラメータ:
cs - 呼び出し可能なステートメント

handleResultSet

protected java.lang.Object handleResultSet(java.lang.reflect.Field field,
                                           java.sql.ResultSet rs)
結果セットを処理します。

パラメータ:
field - フィールド
rs - 結果セット
戻り値:
処理した結果

handleSingleResult

protected java.lang.Object handleSingleResult(java.lang.Class<?> resultClass,
                                              java.sql.ResultSet rs)
1行だけの結果セットを処理します。

パラメータ:
resultClass - 結果のクラス
rs - 結果セット
戻り値:
処理した結果

handleResultList

protected java.lang.Object handleResultList(java.lang.Class<?> elementClass,
                                            java.sql.ResultSet rs)
複数の行を持つ結果セットを処理します。

パラメータ:
elementClass - 結果となるリストの要素型
rs - 結果セット
戻り値:
処理した結果のリスト

getNonParamSize

protected int getNonParamSize()
直接パラメータでは指定しないパラメータの数を返します。

戻り値:
直接パラメータでは指定しないパラメータの数

getNonParam

protected Param getNonParam(int index)
直接パラメータでは指定しないパラメータを返します。

パラメータ:
index - インデックス
戻り値:
直接パラメータでは指定しないパラメータ

addNonParam

protected Param addNonParam(java.lang.reflect.Field field)
直接パラメータでは指定しないパラメータを追加します。

パラメータ:
field - フィールド
戻り値:
追加されたパラメータ

getFetchSize

public int getFetchSize()
フェッチ数を返します。

戻り値:
フェッチ数

getMaxRows

public int getMaxRows()
最大行数を返します。

戻り値:
最大行数

getParameter

public java.lang.Object getParameter()
パラメータを返します。

戻り値:
パラメータ

initialize

protected void initialize()
初期化します。


getParamDescs

protected AbstractModuleCall.ParamDesc[] getParamDescs(java.lang.Class<?> dtoClass)
パラメータとして渡されたDTOのフィールドを表すAbstractModuleCall.ParamDescの配列を返します。

パラメータ:
dtoClass - パラメータとして渡されたDTOのクラス
戻り値:
パラメータとして渡されたDTOのフィールドを表すAbstractModuleCall.ParamDescの配列

createParamDesc

protected AbstractModuleCall.ParamDesc[] createParamDesc(java.lang.Class<?> dtoClass)
パラメータとして渡されたDTOのフィールドを表すAbstractModuleCall.ParamDescの配列を作成して返します。

パラメータ:
dtoClass - パラメータとして渡されたDTOのクラス
戻り値:
パラメータとして渡されたDTOのフィールドを表すAbstractModuleCall.ParamDescの配列


Copyright © 2004-2014 The Seasar Foundation. All Rights Reserved.