クラス 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
で使用できます。void
setBeanFactory
(BeanFactory beanFactory) void
setIgnoreColumnMetaData
(boolean ignoreColumnMetaData) 完全にサポートされているデータベースの場合、基礎となるSimpleJdbcCall
は、JDBC メタデータから呼び出されるストアドプロシージャのパラメーター情報を取得できます。void
setIsFunction
(boolean isFunction) ストアドプロシージャまたは関数が実行されているかどうかを示します。void
setJdbcCallOperationsCacheSize
(int jdbcCallOperationsCacheSize) SimpleJdbcCallOperations
の最大数を定義します。ゼロの値はキャッシュを無効にします。void
setProcedureParameters
(ListSE<ProcedureParameter> procedureParameters) 静的な値またはExpression
を表す文字列を含むカスタムストアドプロシージャのパラメーター。void
setReturningResultSetRowMappers
(MapSE<StringSE, RowMapper<?>> returningResultSetRowMappers) ストアドプロシージャが ResultSets を返す場合、RowMapper
のマップを提供して、ResultSet
SE を意味のあるオブジェクトに変換できます。void
setReturnValueRequired
(boolean returnValueRequired) 返される結果にプロシージャの戻り値を含める必要があることを示します。void
setSkipUndeclaredResults
(boolean skipUndeclaredResults) この変数がtrue
に設定されている場合、対応するSqlOutParameter
宣言を持たないストアドプロシージャ呼び出しからのすべての結果はバイパスされます。void
setSqlParameters
(ListSE<SqlParameter> sqlParameters) データベースシステムが Spring で完全にサポートされておらず、JDBC メタデータからパラメーター定義を取得できない場合は、SqlParameter
を明示的に定義する必要があります。void
setSqlParameterSourceFactory
(SqlParameterSourceFactory sqlParameterSourceFactory) カスタムSqlParameterSourceFactory
を設定する機能を提供します。void
setStoredProcedureName
(StringSE storedProcedureName) 実行するストアドプロシージャまたはストアドファンクションの名前。void
setStoredProcedureNameExpression
(Expression storedProcedureNameExpression) storedProcedureNameExpression
を使用すると、Message
をストアドプロシージャまたはストアド関数の名前のソースとして使用できます。void
setUsePayloadAsParameterSource
(boolean usePayloadAsParameterSource) "true" に設定すると、メッセージのペイロードがパラメーターを提供するためのソースとして使用されます。
コンストラクターの詳細
StoredProcExecutor
DB 接続を取得できるDataSource
SE を取るコンストラクター。- パラメーター:
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
のマップを提供して、ResultSet
SE を意味のあるオブジェクトに変換できます。- パラメーター:
returningResultSetRowMappers
- マップは null であってはならず、null 値を含んではなりません。
setJdbcCallOperationsCacheSize
public void setJdbcCallOperationsCacheSize(int jdbcCallOperationsCacheSize) SimpleJdbcCallOperations
の最大数を定義します。値がゼロの場合、キャッシュは無効になります。デフォルトは 10 です。- パラメーター:
jdbcCallOperationsCacheSize
- 負であってはなりません。
setBeanFactory
BeanResolver
をStandardEvaluationContext
に追加するために使用されるオプションのBeanFactory
を設定できます。設定されていない場合、このプロパティはデフォルトで null になります。- 次で指定:
- インターフェース
BeanFactoryAware
のsetBeanFactory
- パラメーター:
beanFactory
- 設定されている場合は null であってはなりません。