クラス JdbcMessageHandler
java.lang.ObjectSE
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.jdbc.JdbcMessageHandler
- 実装されたすべてのインターフェース:
org.reactivestreams.Subscriber<Message<?>>
、Aware
、BeanFactoryAware
、BeanNameAware
、DisposableBean
、InitializingBean
、ApplicationContextAware
、Ordered
、ComponentSourceAware
、ExpressionCapable
、Orderable
、IntegrationPattern
、NamedComponent
、IntegrationManagement
、TrackableComponent
、MessageHandler
、reactor.core.CoreSubscriber<Message<?>>
SQL 更新を実行するメッセージハンドラー。動的クエリパラメーターは、
SqlParameterSourceFactory
抽象化を通じてサポートされます。SqlParameterSourceFactory
のデフォルト実装は、メッセージをラップして、その Bean プロパティをクエリ文字列で名前で参照できるようにします。INSERT INTO ITEMS (MESSAGE_ID, PAYLOAD) VALUES (:headers[id], :payload)
メッセージペイロードが Iterable
SE のインスタンスである場合、NamedParameterJdbcOperations.batchUpdate(String, SqlParameterSource[])
が実行されます。各 SqlParameterSource
インスタンスは、リクエストメッセージのヘッダーを使用して内部 Message
実装にラップされた項目に基づいています。項目はまだ Message
でない場合のみ折り返しされます。
preparedStatementSetter
が構成されている場合、適切な JdbcOperations.batchUpdate(String, BatchPreparedStatementSetter)
機能の各項目に適用されます。
NOTE: keysGenerated
が使用されている場合、バッチ更新はサポートされません。N.B. ヘッダーキーをエスケープするために引用符を使用しないでください。デフォルトの SQL パラメーターソース(Spring JDBC から)は、ドット付きの名前のヘッダーも処理できます (たとえば business.id
)
- 導入:
- 2.0
- 作成者:
- Dave Syer, Artem Bilan, Trung Pham
ネストされたクラスのサマリー
インターフェース org.springframework.integration.support.management.IntegrationManagement から継承されたネストクラス / インターフェース
IntegrationManagement.ManagementOverrides
フィールドのサマリー
クラス org.springframework.integration.context.IntegrationObjectSupport から継承されたフィールド
EXPRESSION_PARSER, logger
インターフェース org.springframework.integration.support.management.IntegrationManagement から継承されたフィールド
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターの概要
コンストラクターコンストラクター説明JdbcMessageHandler
(DataSourceSE dataSource, StringSE updateSql) DB 接続を取得できるDataSource
SE と、新しい行を取得するために実行する選択クエリを取得するコンストラクター。JdbcMessageHandler
(JdbcOperations jdbcOperations, StringSE updateSql) クエリの実行に使用するJdbcOperations
インスタンスと、新しい行を取得するために実行する選択クエリを取得するコンストラクター。メソッドのサマリー
修飾子と型メソッド説明executeUpdateQuery
(Message<?> message, boolean keysGenerated) 提供されたメッセージと生成されたキーフラグの更新を実行します。サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。protected void
handleMessageInternal
(Message<?> message) 更新を実行し、メッセージをSqlParameterSourceFactory
に渡します。protected void
onInit()
サブクラスは、初期化ロジック用にこれを実装できます。void
setKeysGenerated
(boolean keysGenerated) 更新クエリが自動生成キーを使用した挿入であることを示すフラグ。デバッグレベルでログに記録されます。void
setPreparedStatementSetter
(MessagePreparedStatementSetter preparedStatementSetter) void
setSqlParameterSourceFactory
(SqlParameterSourceFactory sqlParameterSourceFactory) SqlParameterSourceFactory
を構成します。クラス org.springframework.integration.handler.AbstractMessageHandler から継承されたメソッド
handleMessage, onComplete, onError, onNext, onSubscribe, setObservationConvention
クラス org.springframework.integration.handler.MessageHandlerSupport から継承されたメソッド
buildSendTimer, destroy, getIntegrationPatternType, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack
クラス org.springframework.integration.context.IntegrationObjectSupport から継承されたメソッド
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース reactor.core.CoreSubscriber から継承されたメソッド
currentContext
インターフェース org.springframework.integration.support.management.IntegrationManagement から継承されたメソッド
getThisAs
インターフェース org.springframework.integration.support.context.NamedComponent から継承されたメソッド
getBeanName, getComponentName
コンストラクターの詳細
JdbcMessageHandler
DB 接続を取得できるDataSource
SE と、新しい行を取得するために実行する選択クエリを取得するコンストラクター。- パラメーター:
dataSource
- null であってはなりませんupdateSql
- 実行するクエリ
JdbcMessageHandler
クエリの実行に使用するJdbcOperations
インスタンスと、新しい行を取得するために実行する選択クエリを取得するコンストラクター。- パラメーター:
jdbcOperations
- クエリの実行に使用するインスタンスupdateSql
- 実行するクエリ
メソッドの詳細
setKeysGenerated
public void setKeysGenerated(boolean keysGenerated) 更新クエリが自動生成キーを使用した挿入であることを示すフラグ。デバッグレベルでログに記録されます。- パラメーター:
keysGenerated
- 設定するフラグ値
setSqlParameterSourceFactory
SqlParameterSourceFactory
を構成します。- パラメーター:
sqlParameterSourceFactory
- 使用するSqlParameterSourceFactory
。
setPreparedStatementSetter
public void setPreparedStatementSetter(@Nullable MessagePreparedStatementSetter preparedStatementSetter) MessagePreparedStatementSetter
を指定して、PreparedStatement
SE のパラメーターにMessage
コンテキストを設定します。これは
SqlParameterSourceFactory
の低レベルの代替です。- パラメーター:
preparedStatementSetter
- 設定するMessagePreparedStatementSetter
- 導入:
- 4.2
getComponentType
クラスからコピーされた説明:IntegrationObjectSupport
サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。- 次で指定:
- インターフェース
NamedComponent
のgetComponentType
- オーバーライド:
- クラス
MessageHandlerSupport
のgetComponentType
onInit
protected void onInit()クラスからコピーされた説明:IntegrationObjectSupport
サブクラスは、初期化ロジック用にこれを実装できます。- オーバーライド:
- クラス
IntegrationObjectSupport
のonInit
handleMessageInternal
更新を実行し、メッセージをSqlParameterSourceFactory
に渡します。- 次で指定:
- クラス
AbstractMessageHandler
のhandleMessageInternal
executeUpdateQuery