У меня есть следующий фрагмент кода -
String sql = "insert into A (c1, c2, c3) values (?, ?, ?)";
Connection connection = new getConnection();
PreparedStatement ps = connection.prepareStatement(sql);
for (Employee employee: employees) {
ps.setString(1, employee.getName());
ps.setString(2, employee.getCity());
if (StringUtils.isNotBlank(employee.getPhone()))
{
ps.setString(3, employee.getPhone());
}
else
{
// add a warning log - I do not want to throw an exception
ps.clearParameters();
continue;
}
ps.addBatch();
}
ps.executeBatch();
Сработает ли вышеуказанное и не добавит эту конкретную запись сотрудника в пакет?Я пытался воспроизвести это, но не был уверен в результатах, так как у меня нет доступа к некоторым системам.Я прочитал описание для clearParameters (), и оно показывает, что происходит в пакетном сценарии.Удаляет ли это параметры только для этой конкретной записи?Если это зависит от базового драйвера, я использую базу данных H2.
Спасибо!