Class BatchInsertCSV

  • All Implemented Interfaces:
    AdaptrisComponent, ComponentLifecycle, ComponentLifecycleExtension, ConnectedService, MessageEventGenerator, Service, StateManagedComponent

    @ComponentProfile(summary="Insert a CSV file into a database",
                      tag="service,csv,jdbc",
                      since="3.6.5")
    public class BatchInsertCSV
    extends JdbcMapInsert
    Convenience service for inserting a CSV file into a database.

    This creates insert statements based on the CSV file. The actual insert statement will only be generated once based on the first CSV line and executed the appropriate number of times.

     
       firstname, lastname, dob
       alice, bob, 2017-01-01
       bob, smith, 2017-01-01
       carol, smith,2017-01-01
       
     
    will effectively execute the following statement INSERT INTO table (firstname,lastname,dob) VALUES (?,?,?) 3 times; batching as required using PreparedStatement.addBatch() / Statement.executeBatch().

    Note that no parsing/assertion of the column names will be done, so if they are invalid SQL columns then it's going to be fail.

    Since:
    3.6.5

    In the adapter configuration file this class is aliased as csv-jdbc-batch-insert which is the preferred alternative to the fully qualified classname when building your configuration.

    • Constructor Detail

      • BatchInsertCSV

        public BatchInsertCSV()
    • Method Detail

      • getPreferenceBuilder

        public PreferenceBuilder getPreferenceBuilder()
        Returns:
        the formatBuilder
      • setPreferenceBuilder

        public void setPreferenceBuilder​(PreferenceBuilder formatBuilder)
        Parameters:
        formatBuilder - the formatBuilder to set
      • accumulate

        protected static int accumulate​(int[] rc)
                                 throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • getBatchWindow

        public java.lang.Integer getBatchWindow()
        Returns:
        the batchWindow
      • setBatchWindow

        public void setBatchWindow​(java.lang.Integer i)
        Set the batch window for operations.
        Parameters:
        i - the batchWindow to set; default is 1024 if not specified.