Каков рекомендуемый способ вставки партии записей или нет, если база данных вызывает ошибку для любой из вставок? Вот мой текущий код:Активная вставка и транзакция ActiveJDBC
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
?
Спасибо!
Но в вашем примере 'ps.close()' не будет достигнута, если есть исключение, это нормально? –
уверен, это просто псевдокод. Вам понадобится блок 'finally' для закрытия ресурсов, включая соединение – ipolevoy