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

  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 Details

  - ### JdbcInsertBolt

    public JdbcInsertBolt(ConnectionProvider connectionProvider, JdbcMapper jdbcMapper)

- ## Method Details

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