@Override public <T> BulkInsert<T> getBulkInsert(Class<T> clazz) { return new JdbcBulkInsert<>(clazz); }
public void setObjectValues(PreparedStatement pstmt, T entity) throws SQLException { for (int i = 0; i < columns.size(); i++) { Function<Object, Object> accessor = accessors.get(i); Object value = accessor.apply(entity); Function<Object, Object> f = preConvert.get(i); setParameter(pstmt, i + 1, f.apply(value)); } }
public JdbcBulkInsert(JdbcConfiguration config) { this.cfg = config; this.columns = cfg.getEntityInfo().getNotIdentityColumns(); this.insertSql = createInsertQuery(cfg.getEntityInfo().getTableName(), columns); for (ColumnInfo column : columns) { accessors.add(column.getAccessor()); } FieldPreConvert fieldPreConvert = new FieldPreConvert(); for (ColumnInfo column : columns) { preConvert.add(fieldPreConvert.preConvert(column.getFieldType())); } }
public <T> BulkInsert<T> getBulkInsert(JdbcConfiguration config) { return new JdbcBulkInsert<>(config); }
public static void main(String[] args) throws IOException, SQLException { Supplier<Connection> connectionSuplier = new MySqlTestConnectionProvider(); try (Connection connection = connectionSuplier.get()){ TableHelper.createTable(connection); CitiBikeReader<TripFlatEntity> reader = new CitiBikeReader<>("/tmp", str -> new FlatTripParser(str)); JdbcConfiguration config = JdbcConfigurationBuilder.from(TripFlatEntity.class) .batchSize(100).build(); BulkInsert<TripFlatEntity> bulkInsert = new JdbcBulkInsert<>(config); reader.forEachCsvInZip(trips -> { try { bulkInsert.insertAll(connection, trips); } catch (JFleetException | SQLException e) { e.printStackTrace(); } }); } } }