Автокоммит ложного режима Java - PullRequest
7 голосов
/ 07 октября 2009

Я не очень уверен насчет режима автоматической фиксации java JDBC, я создаю соединение, для которого режим автоматической фиксации установлен в значение false. После этого я запускаю запрос на выборку для базы данных, который работает нормально, у меня сложилось впечатление, что commit нужно вызывать только для операторов вставки, обновления, удаления.

Теперь мне нужно зафиксировать соединение для запроса Select? Если нет, будет ли эта таблица заблокирована для других транзакций?

Спасибо, Рохит.

Ответы [ 2 ]

1 голос
/ 07 октября 2009

Это зависит от вашего уровня изоляции. Если вы используете READ COMMITTED, SELECT создает блокировки, только если вы укажете SELECT FOR UPDATE. Если вы используете REPEATABLE READ или выше, каждый SELECT может создать блокировку (зависит от модели вашей базы данных).

0 голосов
/ 07 октября 2009

Я не очень уверен насчет режима автоматической фиксации java JDBC, я создаю соединение, для которого режим автоматической фиксации установлен в значение false. После этого я запускаю запрос на выборку для базы данных, который работает нормально, у меня сложилось впечатление, что commit нужно вызывать только для операторов вставки, обновления, удаления.

Это зависит от вашего приложения. Если есть простые обновления, вставки, удаления, вы можете оставить autocommit = on . В общем, рекомендуется отключить автокоммит. Эта конфигурация дает вам больше гибкости и мощности в применении. Вы можете использовать сложные транзакции и решать, когда транзакция начинается и когда заканчивается.

Теперь мне нужно зафиксировать соединение для запроса Select? Если нет, будет ли эта таблица заблокирована для других транзакций?

Нет, выбранный комментарий не начинает транзакцию (вставка, обновление, удаление делает), поэтому нет необходимости фиксировать / откатывать после выбора статистики. Существует один особый случай выбора, который блокирует выбранные строки и требует транзакции - с для обновления предложение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...