Package org.apache.storm.jdbc.bolt

## Class JdbcInsertBolt

- 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
        - - org.apache.storm.jdbc.bolt.JdbcInsertBolt

- All Implemented Interfaces:
    `Serializable`, `IBolt`, `IComponent`, `IRichBolt`

      public class JdbcInsertBolt
      extends AbstractJdbcBolt

  Basic bolt for writing to any Database table.

  Note: Each JdbcInsertBolt defined in a topology is tied to a specific table.
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.apache.storm.jdbc.bolt.AbstractJdbcBolt

      `collector, configKey, connectionProvider, jdbcClient, queryTimeoutSecs`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JdbcInsertBolt​(ConnectionProvider connectionProvider, JdbcMapper jdbcMapper)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `declareOutputFields​(OutputFieldsDeclarer outputFieldsDeclarer)` | Declare the output schema for all the streams of this topology.
    `void` | `prepare​(Map<String,​Object> map, TopologyContext topologyContext, OutputCollector collector)` | Subclasses should call this to ensure output collector and connection provider are set up, and finally jdbcClient is initialized properly.
    `protected void` | `process​(Tuple tuple)` | Process a single non-tick tuple of input.
    `JdbcInsertBolt` | `withInsertQuery​(String insertQuery)` |
    `JdbcInsertBolt` | `withQueryTimeoutSecs​(int queryTimeoutSecs)` |
    `JdbcInsertBolt` | `withTableName​(String tableName)` |

    - ### Methods inherited from class org.apache.storm.jdbc.bolt.AbstractJdbcBolt

      `cleanup`

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

      `execute, onTickTuple`

    - ### 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

      `getComponentConfiguration`

- - ### Constructor Detail

    - #### JdbcInsertBolt

          public JdbcInsertBolt​(ConnectionProvider connectionProvider,
                                JdbcMapper jdbcMapper)

  - ### Method Detail

    - #### withTableName

          public JdbcInsertBolt withTableName​(String tableName)

    - #### withInsertQuery

          public JdbcInsertBolt withInsertQuery​(String insertQuery)

    - #### withQueryTimeoutSecs

          public JdbcInsertBolt withQueryTimeoutSecs​(int queryTimeoutSecs)

    - #### prepare

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

      Description copied from class: `AbstractJdbcBolt`
      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:

      Specified by:
        `prepare` in interface `IBolt`
      Overrides:
        `prepare` in class `AbstractJdbcBolt`
      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.
        `collector` - 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.

    - #### process

          protected void process​(Tuple tuple)

      Description copied from class: `BaseTickTupleAwareRichBolt`
      Process a single non-tick tuple of input. Implementation needs to handle ack manually. More details on `IBolt.execute(Tuple)`.
      Specified by:
        `process` in class `BaseTickTupleAwareRichBolt`
      Parameters:
        `tuple` - The input tuple to be processed.

    - #### declareOutputFields

          public void declareOutputFields​(OutputFieldsDeclarer outputFieldsDeclarer)

      Description copied from interface: `IComponent`
      Declare the output schema for all the streams of this topology.
      Parameters:
        `outputFieldsDeclarer` - this is used to declare output stream ids, output fields, and whether or not each output stream is a direct stream