In the code below I am trying to insert batch data but executeBatch works before stream ends. And it works contionusly. How can I make executeBatch to work after stream ends?
try (Connection dbConn = hConn.getHikariMap().get("" + connectionId).getConnection();) {
Statement statement = dbConn.createStatement();
if (fileData.get(0).length == 1) {
fileData.stream().forEach(row -> {
columnValTemp.append("','" + row[fileColumnOrder.get(0)] + "','" + row[fileColumnOrder.get(0)]);
valuesTemp.append(columnValTemp);
columnValTemp.setLength(0);
values.append(valuesTemp);
String query = "INSERT INTO " + schema + "." + tableName + " (" + columns + ") VALUES " + " ('" + values+ "')";
try {
statement.addBatch(query);
} catch (SQLException e) {
e.printStackTrace();
}
values.delete(values.length() - valuesTemp.length(), values.length());
valuesTemp.setLength(0);
});
statement.executeBatch();
}
} catch (SQLException e) {
logger.error(e, e);
e.printStackTrace();
}