Недавно я использовал HikariCP. Прежде чем использовать свой собственный простой ConnectionPool для удовлетворения наших потребностей. Иногда в нашем программном обеспечении нам нужно выполнить несколько вложений в базу данных, каждая вставка которых зависит от некоторой проверки. Более или менее, как образец с этого сайта: http://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html#commit_transactionsИспользуется ли использование HikariCP autocommit так же, как обычное использование автосообщения Java-соединения?
По-моему, когда я использовал свой собственный пул связи, я всегда ставил объект соединения на setAutoCommit (false), прежде чем передать его запрашивающему объекту, менеджер базы данных может откатить данные вручную, когда что-то пойдет не так. Как и в примере, если попытка поймает какие-либо исключения, тогда она вызовет функцию отката. Когда я возвращаю соединение, я вызываю connection.commit() в возврате соединения и устанавливаю autocommit обратно в true в диспетчере пула соединений.
Мой вопрос: HikariCP по-прежнему использует ту же процедуру для моих нужд? Смысл, установите для autocommit значение false (я прочитал руководство, у вас есть параметры autocommit для вашей конфигурации), а затем мы просто откат вручную или фиксация транзакции, а затем возврат в пул? Или есть какая-то автоматизация, когда мы можем просто выбросить исключение, и HikariCP автоматически вызовет откат при ошибке или вызовет фиксацию при возврате соединения, если я не установлю параметр конфигурации для Autocommit = false?
Благодарим за любую информацию. Rendra
Hi Brett. Жаль, что долгое время нет ответа. Я заинтригован вашим заявлением о том, что вы препятствуете установке autocommit = false. В моем случае, когда у меня есть цепочки таблиц, которые должны быть полностью обновлены до того, как транзакция будет считаться успешной, не будет автокомментировать причину частичного обновления? Например, в моем веб-сервисе он обновит таблицу 1, затем таблицу 2, затем таблицу 3. Если какая-либо из таблицы (скажем, таблица 2 или 3) завершится с ошибкой, тогда я хочу откатить все транзакции в таблицах из тот же процесс/услуга. –
Я не говорю, что не используйте autoCommit = false. Я просто хочу совершить транзакции, или HikariCP откатит их. – brettw