Class JdbcPollingChannelAdapter

java.lang.Object
org.springframework.integration.util.AbstractExpressionEvaluator
org.springframework.integration.endpoint.AbstractMessageSource<Object>
org.springframework.integration.jdbc.JdbcPollingChannelAdapter
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean, org.springframework.integration.core.MessageSource<Object>, org.springframework.integration.IntegrationPattern, org.springframework.integration.support.context.NamedComponent, org.springframework.integration.support.management.IntegrationInboundManagement, org.springframework.integration.support.management.IntegrationManagement

public class JdbcPollingChannelAdapter extends org.springframework.integration.endpoint.AbstractMessageSource<Object>
A polling channel adapter that creates messages from the payload returned by executing a select query. Optionally an update can be executed after the select in order to update processed rows.
Since:
2.0
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement

    org.springframework.integration.support.management.IntegrationManagement.ManagementOverrides
  • Field Summary

    Fields inherited from class org.springframework.integration.util.AbstractExpressionEvaluator

    EXPRESSION_PARSER, logger

    Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement

    METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
  • Constructor Summary

    Constructors
    Constructor
    Description
    JdbcPollingChannelAdapter(DataSource dataSource, String selectQuery)
    Constructor taking DataSource from which the DB Connection can be obtained and the select query to execute to retrieve new rows.
    JdbcPollingChannelAdapter(org.springframework.jdbc.core.JdbcOperations jdbcOperations, String selectQuery)
    Constructor taking JdbcOperations instance to use for query execution and the select query to execute to retrieve new rows.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected List<?>
    doPoll(org.springframework.jdbc.core.namedparam.SqlParameterSource sqlQueryParameterSource)
    Perform a select against provided SqlParameterSource.
    protected Object
    Execute the select query and the update query if provided.
     
    protected void
     
    void
    setMaxRows(int maxRows)
    The maximum number of rows to query.
    void
    setRowMapper(org.springframework.jdbc.core.RowMapper<?> rowMapper)
    Set a RowMapper.
    final void
    setSelectQuery(String selectQuery)
    Set the select query.
    void
    setSelectSqlParameterSource(org.springframework.jdbc.core.namedparam.SqlParameterSource sqlQueryParameterSource)
    A source of parameters for the select query used for polling.
    void
    setUpdatePerRow(boolean updatePerRow)
    Set a flag to update per record or not.
    void
    setUpdateSql(String updateSql)
    Set an update query.
    void
    Set an SqlParameterSourceFactory for update query.

    Methods inherited from class org.springframework.integration.endpoint.AbstractMessageSource

    buildMessage, destroy, getBeanName, getComponentName, getManagedName, getManagedType, getOverrides, isLoggingEnabled, receive, registerMetricsCaptor, setBeanName, setHeaderExpressions, setLoggingEnabled, setManagedName, setManagedType

    Methods inherited from class org.springframework.integration.util.AbstractExpressionEvaluator

    afterPropertiesSet, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, getBeanFactory, getEvaluationContext, getEvaluationContext, getMessageBuilderFactory, setBeanFactory, setConversionService

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement

    getThisAs, registerObservationRegistry

    Methods inherited from interface org.springframework.integration.core.MessageSource

    getIntegrationPatternType
  • Constructor Details

    • JdbcPollingChannelAdapter

      public JdbcPollingChannelAdapter(DataSource dataSource, String selectQuery)
      Constructor taking DataSource from which the DB Connection can be obtained and the select query to execute to retrieve new rows.
      Parameters:
      dataSource - Must not be null
      selectQuery - query to execute
    • JdbcPollingChannelAdapter

      public JdbcPollingChannelAdapter(org.springframework.jdbc.core.JdbcOperations jdbcOperations, String selectQuery)
      Constructor taking JdbcOperations instance to use for query execution and the select query to execute to retrieve new rows.
      Parameters:
      jdbcOperations - instance to use for query execution
      selectQuery - query to execute
  • Method Details

    • setRowMapper

      public void setRowMapper(@Nullable org.springframework.jdbc.core.RowMapper<?> rowMapper)
      Set a RowMapper.
      Parameters:
      rowMapper - the RowMapper to use.
    • setSelectQuery

      public final void setSelectQuery(String selectQuery)
      Set the select query.
      Parameters:
      selectQuery - the query.
      Since:
      5.2.1
    • setUpdateSql

      public void setUpdateSql(String updateSql)
      Set an update query.
      Parameters:
      updateSql - the update query to use.
    • setUpdatePerRow

      public void setUpdatePerRow(boolean updatePerRow)
      Set a flag to update per record or not. Defaults to false.
      Parameters:
      updatePerRow - the flag to control an update per record or whole batch.
    • setUpdateSqlParameterSourceFactory

      public void setUpdateSqlParameterSourceFactory(SqlParameterSourceFactory sqlParameterSourceFactory)
      Set an SqlParameterSourceFactory for update query.
      Parameters:
      sqlParameterSourceFactory - the SqlParameterSourceFactory to use.
    • setSelectSqlParameterSource

      public void setSelectSqlParameterSource(@Nullable org.springframework.jdbc.core.namedparam.SqlParameterSource sqlQueryParameterSource)
      A source of parameters for the select query used for polling.
      Parameters:
      sqlQueryParameterSource - the sql query parameter source to set
    • setMaxRows

      public void setMaxRows(int maxRows)
      The maximum number of rows to query. Default is zero - select all records.
      Parameters:
      maxRows - the max rows to set
      Since:
      5.1
    • onInit

      protected void onInit()
      Overrides:
      onInit in class org.springframework.integration.util.AbstractExpressionEvaluator
    • getComponentType

      public String getComponentType()
    • doReceive

      protected Object doReceive()
      Execute the select query and the update query if provided. Returns the rows returned by the select query. If a RowMapper has been provided, the mapped results are returned.
      Specified by:
      doReceive in class org.springframework.integration.endpoint.AbstractMessageSource<Object>
    • doPoll

      protected List<?> doPoll(@Nullable org.springframework.jdbc.core.namedparam.SqlParameterSource sqlQueryParameterSource)
      Perform a select against provided SqlParameterSource.
      Parameters:
      sqlQueryParameterSource - the SqlParameterSource to use. Optional.
      Returns:
      the result of the query.