Обычный совет заключается в закрытии ресурсов JDBC, когда они больше не нужны. Это можно сделать в уловке и, наконец. Однако, что, если метод DAO обрабатывает только один объект домена, а операция требует, чтобы некоторые из них были восстановлены/созданы за один раз? Будет ли получение заявления, а затем его закрытие неоднократно проблемой с точки зрения производительности? Если да, должен ли быть отдельный метод для обработки нескольких объектов за один проход или должен быть закрыт каким-либо образом?Методы Dao, управляющие одиночными/несколькими объектами и закрывающими ресурсами
ответ
Вы можете добавить дополнительный слой транзакций на вершине DAO слоя и вызвать setAutoCommit(false)
на Connection
в начале операции/сессии, пусть методы DAO использовать тот же Connection
экземпляр, а затем commit()
Connection
, когда сделка/сеанс завершен/закрыт. Однако вам нужно будет изменить методы DAO, чтобы принять Connection
в качестве дополнительного аргумента или сохранить его ThreadLocal
(что, однако, необходимо сделать очень осторожно, поскольку потоки могут быть объединены).
Создание заявлений не должно быть таким дорогостоящим, пока вы последовательно используете PreparedStatement
, которые обычно скомпилированы и кэшированы в стороне БД.
Я думаю, что было бы нецелесообразно, если приложение основано на Дао или нет. Эти ресурсы должны быть закрыты. Если вы работаете без каких-либо каркасов (весна, спящий режим и т. Д.)
java.sql.Связь должна быть возвращена в бассейн, если бы был пул. Объекты ResultSet и Statement должны быть закрыты после выполнения запроса.
В зависимости от вашей архитектуры эти коды управления ресурсами могут быть размещены в классах Dao или других классах. например, существуют классы, посвященные созданию и выполнению SQL-запросов. Коды ресурсов mgmt могут быть в этих классах.
Если вы работаете с некоторыми фреймворками, инфраструктура, как правило, будет использовать ресурс mgmt для вас.
- 1. попробуйте с ресурсами, неожиданно закрывающими ресурсы
- 2. Методы DAO и синхронизированы
- 3. Методы определения класса DAO
- 4. Что такое управляющие лестницы и управляющие меню?
- 5. проблема с закрывающими сокетами
- 6. Как обращаться с ajax и закрывающими страницами
- 7. Как проверить методы DAO с помощью Mockito?
- 8. Методы поиска объектов Bean VS DAO?
- 9. Какие методы внедрить в «правильный» класс DAO?
- 10. Методы измерения единичного теста Mongoose Jasminejs (DAO)
- 11. Какие методы должны содержаться в DAO?
- 12. Java EE - DAO DVO
- 13. выставить методы класса dao для webservice java
- 14. Одиночные DAO и общие методы CRUD (JPA/Hibernate + Spring)
- 15. Почему у DAO есть отдельные методы создания и обновления?
- 16. XSLT с различными закрывающими тегами
- 17. Общие DAO и Wrapper
- 18. SpeechSynthezier.PhonemeReached события и управляющие символы
- 19. Управляющие символы и строковое манипулирование
- 20. Домены домена, DAO и службы
- 21. Angular.js и DAO pattern
- 22. DAO, Spring и Hibernate
- 23. управляющие операторы
- 24. Конструкция DAO и структура данных
- 25. Каковы некоторые методы понимания взаимодействия с объектами
- 26. Смешивание DAO и служебных вызовов
- 27. Методы вызова в Main с объектами
- 28. Основные методы ActiveModel, не работающие над объектами
- 29. Работа с объектами и методы создания в JavaScript, возвращающие значения
- 30. gsoap и управление ресурсами