クラス StoredProcExecutor
java.lang.ObjectSE
org.springframework.integration.jdbc.StoredProcExecutor
- 実装済みのインターフェース一覧:
Aware, BeanFactoryAware, InitializingBean
このクラスは、すべてのストアドプロシージャ(ストアドファンクション)コンポーネントによって使用され、実行するためのコア機能を提供します。
- 導入:
- 2.1
- 作成者:
- Gunnar Hillert, Artem Bilan, Gary Russell, Christian Tzolov
コンストラクター概要
コンストラクター方法の概要
修飾子と型メソッド説明voidパラメーターを検証し、SimpleJdbcCallOperationsにパラメーターを設定し、ProcedureParameterが渡されるときに適切なSqlParameterSourceFactoryが定義されていることを確認します。ストアドプロシージャまたは関数の実行 -ProcedureParameter値を抽出するために使用できるMessageがない場合に使用します。executeStoredProcedure(Message<?> message) ストアドプロシージャまたは関数の実行 -ProcedureParameter値を抽出するために、Messageで使用できます。@Nullable StringSE@Nullable StringSEvoidsetBeanFactory(BeanFactory beanFactory) voidsetIgnoreColumnMetaData(boolean ignoreColumnMetaData) 完全にサポートされているデータベースの場合、基礎となるSimpleJdbcCallは、JDBC メタデータから呼び出されるストアドプロシージャのパラメーター情報を取得できます。voidsetIsFunction(boolean isFunction) ストアドプロシージャまたは関数が実行されているかどうかを示します。voidsetJdbcCallOperationsCacheSize(int jdbcCallOperationsCacheSize) SimpleJdbcCallOperationsの最大数を定義します。ゼロの値はキャッシュを無効にします。voidsetProcedureParameters(ListSE<ProcedureParameter> procedureParameters) 静的な値またはExpressionを表す文字列を含むカスタムストアドプロシージャのパラメーター。voidsetReturningResultSetRowMappers(MapSE<StringSE, RowMapper<?>> returningResultSetRowMappers) ストアドプロシージャが ResultSets を返す場合、RowMapperのマップを提供して、ResultSetSE を意味のあるオブジェクトに変換できます。voidsetReturnValueRequired(boolean returnValueRequired) 返される結果にプロシージャの戻り値を含める必要があることを示します。voidsetSkipUndeclaredResults(boolean skipUndeclaredResults) この変数がtrueに設定されている場合、対応するSqlOutParameter宣言を持たないストアドプロシージャ呼び出しからのすべての結果はバイパスされます。voidsetSqlParameters(ListSE<SqlParameter> sqlParameters) データベースシステムが Spring で完全にサポートされておらず、JDBC メタデータからパラメーター定義を取得できない場合は、SqlParameterを明示的に定義する必要があります。voidsetSqlParameterSourceFactory(SqlParameterSourceFactory sqlParameterSourceFactory) カスタムSqlParameterSourceFactoryを設定する機能を提供します。voidsetStoredProcedureName(StringSE storedProcedureName) 実行するストアドプロシージャまたはストアドファンクションの名前。voidsetStoredProcedureNameExpression(Expression storedProcedureNameExpression) storedProcedureNameExpressionを使用すると、Messageをストアドプロシージャまたはストアド関数の名前のソースとして使用できます。voidsetUsePayloadAsParameterSource(boolean usePayloadAsParameterSource) "true" に設定すると、メッセージのペイロードがパラメーターを提供するためのソースとして使用されます。
コンストラクターの詳細
StoredProcExecutor
DB 接続を取得できるDataSourceSE を取るコンストラクター。- パラメーター:
dataSource-SimpleJdbcCallインスタンスの作成に使用され、Null であってはなりません
方法の詳細
afterPropertiesSet
public void afterPropertiesSet()パラメーターを検証し、SimpleJdbcCallOperationsにパラメーターを設定し、ProcedureParameterが渡されるときに適切なSqlParameterSourceFactoryが定義されていることを確認します。- 次で指定:
- インターフェース
InitializingBean内のafterPropertiesSet
executeStoredProcedure
ストアドプロシージャまたは関数の実行 -ProcedureParameter値を抽出するために使用できるMessageがない場合に使用します。- 戻り値:
- ストアドプロシージャの結果を含むマップ(存在する場合)。
executeStoredProcedure
setIgnoreColumnMetaData
public void setIgnoreColumnMetaData(boolean ignoreColumnMetaData) 完全にサポートされているデータベースの場合、基礎となるSimpleJdbcCallは、JDBC メタデータから呼び出されるストアドプロシージャのパラメーター情報を取得できます。ただし、使用されているデータベースがメタデータルックアップをサポートしていない場合、またはカスタマイズされたパラメーター定義を提供する場合は、このフラグを "true" に設定できます。デフォルトは "false" です。- パラメーター:
ignoreColumnMetaData- 列のメタデータを無視する場合は true。
setProcedureParameters
静的な値またはExpressionを表す文字列を含むカスタムストアドプロシージャのパラメーター。- パラメーター:
procedureParameters- パラメーター。
setSqlParameters
データベースシステムが Spring で完全にサポートされておらず、JDBC メタデータからパラメーター定義を取得できない場合は、SqlParameterを明示的に定義する必要があります。- パラメーター:
sqlParameters- パラメーター。
setSqlParameterSourceFactory
カスタムSqlParameterSourceFactoryを設定する機能を提供します。ProcedureParameterが明示的に設定されていて、カスタムSqlParameterSourceFactoryを提供する場合は、ExpressionEvaluatingSqlParameterSourceFactoryのインスタンスを提供する必要があることに注意してください。そうでない場合、SqlParameterSourceFactory はデフォルトのExpressionEvaluatingSqlParameterSourceFactoryに置き換えられます。- パラメーター:
sqlParameterSourceFactory- パラメーターソースファクトリ。
getStoredProcedureName
- 戻り値:
- 設定されている場合は、ストアドプロシージャまたは関数の名前。それ以外の場合は null。
getStoredProcedureNameExpressionAsString
- 戻り値:
- 設定されている場合は、文字列としてのストアドプロシージャ名式。それ以外の場合は null。
setStoredProcedureName
実行するストアドプロシージャまたはストアド関数の名前。isFunctionが "true" に設定されている場合、このプロパティはストアド関数名を指定します。または、setStoredProcedureNameExpression(Expression)を介してストアドプロシージャ名を指定することもできます。たとえば、この方法では、MessageHeadersを介してストアドプロシージャまたはストアド関数の名前を指定できます。- パラメーター:
storedProcedureName- null であってはならず、空であってはなりません- 関連事項:
setStoredProcedureNameExpression
storedProcedureNameExpressionを使用すると、Messageをストアドプロシージャまたはストアド関数の名前のソースとして使用できます。isFunctionが "true" に設定されている場合、このプロパティはストアド関数名を指定します。この setter の値として SpEL 式を提供することにより、元のペイロードのサブセット、ヘッダー値、その他の解決可能な SpEL 式をストアドプロシージャ / 関数の基礎として使用できます。式の評価では、メッセージ全体をルートオブジェクトとして使用できます。たとえば、次の SpEL 式(とりわけ)が可能です。- payload.foo
- headers.foobar
- 新しい java.util.Date()
- "foo" + "bar"
setStoredProcedureName(String)を介してストアードプロシージャー名を指定することもできます。- パラメーター:
storedProcedureNameExpression- null であってはなりません。
setUsePayloadAsParameterSource
public void setUsePayloadAsParameterSource(boolean usePayloadAsParameterSource) 'true' に設定すると、メッセージのペイロードがパラメーターを提供するためのソースとして使用されます。false の場合、Message全体がパラメーターのソースとして使用可能になります。ProcedureParameterが渡されない場合、このプロパティはデフォルトでtrueになります。これは、デフォルトのBeanPropertySqlParameterSourceFactoryを使用すると、ペイロードの Bean プロパティが、実行されるストアドプロシージャまたは関数のパラメーター値のソースとして使用されることを意味します。ただし、ProcedureParameterが渡された場合、このプロパティはデフォルトでfalseに評価されます。ProcedureParameterでは、SpEl 式を提供できるため、Message全体にアクセスできることは非常に有益です。- パラメーター:
usePayloadAsParameterSource- false の場合、Message全体がパラメーターソースとして使用されます。
setIsFunction
public void setIsFunction(boolean isFunction) ストアドプロシージャまたは関数のどちらが実行されているかを示します。デフォルト値は false です。- パラメーター:
isFunction- true に設定すると、ストアドプロシージャではなく SQL 関数が実行されます。
setReturnValueRequired
public void setReturnValueRequired(boolean returnValueRequired) 返される結果にプロシージャの戻り値を含める必要があることを示します。- パラメーター:
returnValueRequired- true の場合、戻り値が含まれます。
setSkipUndeclaredResults
public void setSkipUndeclaredResults(boolean skipUndeclaredResults) この変数がtrueに設定されている場合、対応するSqlOutParameter宣言がないストアードプロシージャー呼び出しからのすべての結果はバイパスされます。例: ストアドプロシージャが単一の結果パラメーターのみを宣言した場合でも、ストアドプロシージャは更新カウント値を返す場合があります。正確な動作は、使用するデータベースによって異なります。値は、基になるJdbcTemplateに設定されます。おそらく更新カウントを処理したいと思う開発者はごくわずかであるため、値はデフォルトでtrueになります。- パラメーター:
skipUndeclaredResults- ブール値。
setReturningResultSetRowMappers
public void setReturningResultSetRowMappers(MapSE<StringSE, RowMapper<?>> returningResultSetRowMappers) ストアドプロシージャが ResultSets を返す場合、RowMapperのマップを提供して、ResultSetSE を意味のあるオブジェクトに変換できます。- パラメーター:
returningResultSetRowMappers- マップは null であってはならず、null 値を含んではなりません。
setJdbcCallOperationsCacheSize
public void setJdbcCallOperationsCacheSize(int jdbcCallOperationsCacheSize) SimpleJdbcCallOperationsの最大数を定義します。値がゼロの場合、キャッシュは無効になります。デフォルトは 10 です。- パラメーター:
jdbcCallOperationsCacheSize- 負であってはなりません。
setBeanFactory
BeanResolverをStandardEvaluationContextに追加するために使用されるオプションのBeanFactoryを設定できます。設定されていない場合、このプロパティはデフォルトで null になります。- 次で指定:
- インターフェース
BeanFactoryAware内のsetBeanFactory - パラメーター:
beanFactory- 設定されている場合は null であってはなりません。