/** * <p> * Inserts entry into buffer. If current # of entries filled batch size or it overflowed the buffer, * it will call underlying JDBC to actually insert it. * </p> * * {@inheritDoc} * @see org.apache.gobblin.writer.commands.JdbcBufferedInserter#insert(java.lang.String, java.lang.String, org.apache.gobblin.converter.jdbc.JdbcEntryData) */ @Override public void insert(String databaseName, String table, JdbcEntryData jdbcEntryData) throws SQLException { if (this.columnNames.isEmpty()) { for (JdbcEntryDatum datum : jdbcEntryData) { this.columnNames.add(datum.getColumnName()); } initializeBatch(databaseName, table); } this.pendingInserts.add(jdbcEntryData); if (this.pendingInserts.size() == this.batchSize) { executeBatchInsert(this.insertPstmtForFixedBatch); // Reuse pre-computed Preparedstatement. } }
/** * <p> * Inserts entry into buffer. If current # of entries filled batch size or it overflowed the buffer, * it will call underlying JDBC to actually insert it. * </p> * * {@inheritDoc} * @see org.apache.gobblin.writer.commands.JdbcBufferedInserter#insert(java.lang.String, java.lang.String, org.apache.gobblin.converter.jdbc.JdbcEntryData) */ @Override public void insert(String databaseName, String table, JdbcEntryData jdbcEntryData) throws SQLException { if (this.columnNames.isEmpty()) { for (JdbcEntryDatum datum : jdbcEntryData) { this.columnNames.add(datum.getColumnName()); } initializeBatch(databaseName, table); } this.pendingInserts.add(jdbcEntryData); if (this.pendingInserts.size() == this.batchSize) { executeBatchInsert(this.insertPstmtForFixedBatch); // Reuse pre-computed Preparedstatement. } }