Каков рекомендуемый способ вставки пакета записей или ничего, если база данных выдает ошибку для любой из вставок? Вот мой текущий код:
PreparedStatement ps = Base.startBatch("INSERT INTO table(col1) VALUES(?)");
for (MyModel m : myModels)
Base.addBatch(ps, m.getCol1());
Base.executeBatch(ps);
ps.close();
Это вставляет записи до тех пор, пока не выйдет первая из них (если это произойдет).
Я хочу, чтобы все или ничего не было вставлено, тогда я подумал об обертке executeBatch():
Base.openTransaction();
Base.executeBatch(ps);
Base.commitTransaction();
Если это правильно, должен ли я сделать Base.rollbackTransaction()
в каком-то try catch
?
Должен ли я также закрыть ps.close()
в блоке finally
?
Спасибо!