Package org.apache.storm.jdbc.bolt

## Class AbstractJdbcBolt

- java.lang.Object
- - org.apache.storm.topology.base.BaseComponent
  - - org.apache.storm.topology.base.BaseRichBolt
    - - org.apache.storm.topology.base.BaseTickTupleAwareRichBolt
      - - org.apache.storm.jdbc.bolt.AbstractJdbcBolt

- All Implemented Interfaces:
    `Serializable`, `IBolt`, `IComponent`, `IRichBolt`
  Direct Known Subclasses:
    `JdbcInsertBolt`, `JdbcLookupBolt`

      public abstract class AbstractJdbcBolt
      extends BaseTickTupleAwareRichBolt

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected OutputCollector` | `collector` |
    `protected String` | `configKey` |
    `protected ConnectionProvider` | `connectionProvider` |
    `protected JdbcClient` | `jdbcClient` |
    `protected Integer` | `queryTimeoutSecs` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractJdbcBolt​(ConnectionProvider connectionProviderParam)` | Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `cleanup()` | Cleanup.
    `void` | `prepare​(Map<String,​Object> map, TopologyContext topologyContext, OutputCollector outputCollector)` | Subclasses should call this to ensure output collector and connection provider are set up, and finally jdbcClient is initialized properly.

    - ### Methods inherited from class org.apache.storm.topology.base.BaseTickTupleAwareRichBolt

      `execute, onTickTuple, process`

    - ### Methods inherited from class org.apache.storm.topology.base.BaseComponent

      `getComponentConfiguration`

    - ### Methods inherited from class java.lang.Object

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

    - ### Methods inherited from interface org.apache.storm.topology.IComponent

      `declareOutputFields, getComponentConfiguration`

- - ### Field Detail

    - #### collector

          protected OutputCollector collector

    - #### jdbcClient

          protected transient JdbcClient jdbcClient

    - #### configKey

          protected String configKey

    - #### queryTimeoutSecs

          protected Integer queryTimeoutSecs

    - #### connectionProvider

          protected ConnectionProvider connectionProvider

  - ### Constructor Detail

    - #### AbstractJdbcBolt

          public AbstractJdbcBolt​(ConnectionProvider connectionProviderParam)

      Constructor.

      Parameters:
        `connectionProviderParam` - database connection provider

  - ### Method Detail

    - #### prepare

          public void prepare​(Map<String,​Object> map,
                              TopologyContext topologyContext,
                              OutputCollector outputCollector)

      Subclasses should call this to ensure output collector and connection provider are set up, and finally jdbcClient is initialized properly.

      Called when a task for this component is initialized within a worker on the cluster. It provides the bolt with the environment in which the bolt executes.

      This includes the:

      Parameters:
        `map` - The Storm configuration for this bolt. This is the configuration provided to the topology merged in with cluster configuration on this machine.
        `topologyContext` - This object can be used to get information about this task's place within the topology, including the task id and component id of this task, input and output information, etc.
        `outputCollector` - The collector is used to emit tuples from this bolt. Tuples can be emitted at any time, including the prepare and cleanup methods. The collector is thread-safe and should be saved as an instance variable of this bolt object.

    - #### cleanup

          public void cleanup()

      Cleanup.

      Subclasses should call this to ensure connection provider can be also cleaned up.
      Specified by:
        `cleanup` in interface `IBolt`
      Overrides:
        `cleanup` in class `BaseRichBolt`