クラス StoredProcExecutor

java.lang.ObjectSE
org.springframework.integration.jdbc.StoredProcExecutor
実装されたすべてのインターフェース:
AwareBeanFactoryAwareInitializingBean

public class StoredProcExecutor extends ObjectSE implements BeanFactoryAware, InitializingBean
このクラスは、すべてのストアドプロシージャ(ストアドファンクション)コンポーネントによって使用され、実行するためのコア機能を提供します。
導入:
2.1
作成者:
Gunnar Hillert, Artem Bilan, Gary Russell, Christian Tzolov
  • コンストラクターの詳細

    • StoredProcExecutor

      public StoredProcExecutor(DataSourceSE dataSource)
      DB 接続を取得できる DataSourceSE を取るコンストラクター。
      パラメーター:
      dataSource - SimpleJdbcCall インスタンスの作成に使用され、Null であってはなりません
  • メソッドの詳細

    • afterPropertiesSet

      public void afterPropertiesSet()
      パラメーターを検証し、SimpleJdbcCallOperations にパラメーターを設定し、ProcedureParameter が渡されるときに適切な SqlParameterSourceFactory が定義されていることを確認します。
      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • executeStoredProcedure

      public MapSE<StringSE,ObjectSE> executeStoredProcedure()
      ストアドプロシージャまたは関数の実行 -ProcedureParameter 値を抽出するために使用できる Message がない場合に使用します。
      戻り値:
      ストアドプロシージャの結果を含むマップ(存在する場合)。
    • executeStoredProcedure

      public MapSE<StringSE,ObjectSE> executeStoredProcedure(Message<?> message)
      ストアドプロシージャまたは関数の実行 -ProcedureParameter 値を抽出するために、Message で使用できます。
      パラメーター:
      message - メッセージ。
      戻り値:
      ストアドプロシージャの結果を含むマップ(存在する場合)。
    • setIgnoreColumnMetaData

      public void setIgnoreColumnMetaData(boolean ignoreColumnMetaData)
      完全にサポートされているデータベースの場合、基礎となる SimpleJdbcCall は、JDBC メタデータから呼び出されるストアドプロシージャのパラメーター情報を取得できます。ただし、使用されているデータベースがメタデータルックアップをサポートしていない場合、またはカスタマイズされたパラメーター定義を提供する場合は、このフラグを "true" に設定できます。デフォルトは "false" です。
      パラメーター:
      ignoreColumnMetaData - 列のメタデータを無視する場合は true。
    • setProcedureParameters

      public void setProcedureParameters(ListSE<ProcedureParameter> procedureParameters)
      静的な値または Expression を表す文字列を含むカスタムストアドプロシージャのパラメーター。
      パラメーター:
      procedureParameters - パラメーター。
    • setSqlParameters

      public void setSqlParameters(ListSE<SqlParameter> sqlParameters)
      データベースシステムが Spring で完全にサポートされておらず、JDBC メタデータからパラメーター定義を取得できない場合は、SqlParameter を明示的に定義する必要があります。
      パラメーター:
      sqlParameters - パラメーター。
    • setSqlParameterSourceFactory

      public void setSqlParameterSourceFactory(SqlParameterSourceFactory sqlParameterSourceFactory)
      カスタム SqlParameterSourceFactory を設定する機能を提供します。ProcedureParameter が明示的に設定されていて、カスタム SqlParameterSourceFactory を提供する場合は、ExpressionEvaluatingSqlParameterSourceFactory のインスタンスを提供する必要があることに注意してください。そうでない場合、SqlParameterSourceFactory はデフォルトの ExpressionEvaluatingSqlParameterSourceFactory に置き換えられます。
      パラメーター:
      sqlParameterSourceFactory - パラメーターソースファクトリ。
    • getStoredProcedureName

      public StringSE getStoredProcedureName()
      戻り値:
      設定されている場合は、ストアドプロシージャまたは関数の名前。それ以外の場合は null。
    • getStoredProcedureNameExpressionAsString

      public StringSE getStoredProcedureNameExpressionAsString()
      戻り値:
      設定されている場合は、文字列としてのストアドプロシージャ名式。それ以外の場合は null。
    • setStoredProcedureName

      public void setStoredProcedureName(StringSE storedProcedureName)
      実行するストアドプロシージャまたはストアド関数の名前。isFunction が "true" に設定されている場合、このプロパティはストアド関数名を指定します。または、setStoredProcedureNameExpression(Expression) を介してストアドプロシージャ名を指定することもできます。たとえば、この方法では、MessageHeaders を介してストアドプロシージャまたはストアド関数の名前を指定できます。
      パラメーター:
      storedProcedureName - null であってはならず、空であってはなりません
      関連事項:
    • setStoredProcedureNameExpression

      public void setStoredProcedureNameExpression(Expression storedProcedureNameExpression)
      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

      public void setBeanFactory(BeanFactory beanFactory)
      BeanResolverStandardEvaluationContext に追加するために使用されるオプションの BeanFactory を設定できます。設定されていない場合、このプロパティはデフォルトで null になります。
      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      パラメーター:
      beanFactory - 設定されている場合は null であってはなりません。