У меня есть следующий случай, когда я пытаюсь вызвать метод callDB несколько раз (у меня есть миллионы записей для вставки базы данных) с разными операторами sql. У меня будет отдельная логика, которую я буду фиксировать при подключении каждые пару секунд для повышения производительности. Здесь следует отметить одну вещь: в моем случае все эти операторы независимы друг от друга, и я хочу быть уверен, что в случае сбоя какого-либо из них я хочу зафиксировать все предыдущие действительные операторы и не хочу выполнять какой-либо откат. . Я уже добавил conn.commit() в блок catch, но это не помогает. Он откатывает все предыдущие транзакции, которые действительны и должны быть добавлены в базу данных. Пожалуйста, проигнорируйте синтаксическую ошибку, если она есть
conn.setAutoCommit(false);
callDB("valid sql");
callDB("invalid sql");
callDB(String sql){
try{
Statement statement= conn.createStatement();
// Adding SQL statements to the batch
statement.addBatch(sql);
// Executing the batch
int[] updateCounts = statement.executeBatch();
}catch(Exception e){
conn.commit();
}
}
//another logic where it executes conn.commit() method every couple of seconds.
Подробнее здесь: https://stackoverflow.com/questions/792 ... statements
Jdbc autocommit(false) поведение фиксации для нескольких операторов выполненияBatch ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Jdbc autocommit(false) поведение фиксации для нескольких операторов выполненияBatch
Anonymous » » в форуме JAVA - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-