Хорошая реализация уровня доступа к данным сделает это за вас.Например, Hibernate / NHibernate может отложить сброс изменений до конца транзакции или когда вы явно запрашиваете сброс изменений.Кроме того, вы можете извлечь данные в одной транзакции и сохранить изменения в другой, используя оптимистическую блокировку.Это позволяет избежать длительных транзакций с базой данных.
Если вы катите свой собственный уровень доступа, вы можете добавить пакетную обработку к соединению JDBC, чтобы уменьшить издержки задержки для многих небольших запросов обновления / вставки.Тем не менее, я думаю, что эта модель является хорошей идеей, поскольку она дает хороший обзор всех изменений в одном месте.Таким образом, вы можете отправить все свои изменения сразу, быстро в транзакции базы данных, вместо того, чтобы записывать в базу данных, распределенную по всей продолжительности бизнес-транзакции, что может быть длительным, и длинные транзакции в БД обычно не являютсяхорошая идея.
PreparedStatements ортогональны этому шаблону - они не помогают и не мешают.Этот шаблон предназначен для уменьшения задержки в сети и наличия коротких транзакций, а также для обзора всех изменений сущностей в бизнес-операции.