Какие преимущества это дает нам то, что мы должны искать.
1.) Cache
Механизм: если ваше приложение использует много статических данных, то кэширование будет хорошим вариантом, а поддержка гибернации прозрачно.
2.) Управляющий sessions
, transactions
и т. Д.
3.) Сокращение усилий при написании запросов, больше утилит гибернации, таких как Query API
, Criteria API
, HQL
4.) Производительность разработчика. Производительность запросов, как правило, хуже, чем запросы с ручным кодированием, поскольку она не может быть оптимизирована для каждого конкретного случая. Hibernate очень хорошо компенсирует это за счет использования кэшей.
5.) Изменения базы данных: если вы измените базу данных, например, измените Mysql на Oracle, и если вы используете Hibernate, вам не придется изменять какой-либо код реализации. Но если вы используете необработанный JDBC и необработанный запрос вместо JPA или HQL, вам придется изменить гораздо больше запросов. Поскольку необработанный запрос может меняться в зависимости от реализации поставщика базы данных.
Hibernate - действительно огромное решение с сохранением данных и ORM, включая реализацию JPA. Кроме того, существует множество способов управления сущностями в Hibernate, сохранения, транзакций и т. Д. В hibernate вы можете использовать аннотации SQL, HQL или Java. Шаблон JDBC - это простой инструмент, который помогает вам управлять запросами и транзакциями SQL. Вероятно, его лучше описать как оболочку или помощник JDBC. Если вы предпочитаете управлять запросами к базе данных (SQL) самостоятельно или если вы новичок, использование Spring JdbcTemplate поможет вам понять, как это работает. Даже если вы работаете над большим приложением, подумайте об использовании Hibernate. Просто будьте осторожны с кривой обучения Hibernate.
В целом, если вы работаете в относительно небольшом проекте, вы также можете использовать JDBC, но в проектах среднего и крупного размера всегда полезно использовать какое-либо решение ORM, не обязательно Hibernate.
Также для большого проекта мы используем пул соединений для получения соединения из базы данных. Есть гораздо больше библиотек пула подключений, таких как c3p0.