Извиняюсь, я не хотел вводить Вас в заблуждение своим ответом, но ... так уж вышло  Дело вот в чем: Предположим, что потоки выполнения не ставят блокировку на static Connection. Тогда если в одном потоке вызвать rollback(), то откатятся ВСЕ изменения сделанные в других потоках и аналогичная ситуация с commit(). Это означает, что все преимущества транзакционности мигом теряются. Возможен еще случай, когда потоки выполнения ставят блокировку на static Connection - тогда ВСЕ изменения выполняются строго последовательно. Представьте себе ситуацию: юзер, который хочет посмотреть список блюд, должен ждать до тех пор, пока другой юзер не оформит свой заказ и не отпустит блокировку на static Connection ... Поэтому для того, что бы избежать этих проблем нужно использовать пул соединений или открывать/закрывать соединение по мере необходимости (например, по запросу пользователя). |