Когда использовать JDBC, а когда — Spring Data JPA?
Учитель мне задал вопрос, на который я не смог ответить. Когда использовать JDBC, а когда — Spring Data JPA?
Ответы (1 шт):
Когда нужно делать сложные запросы к БД и не используется Spring Data JPA, то тогда надо использовать JDBC. В противном случае, если нет необходимости составлять сложные запросы, и используется Spring Data JPA, даже если и надо составлять такие запросы в Spring Data JPA, то использовать нативные запросы. JDBC представляет собой API для низкоуровневого доступа к БД, и по возможности следует избегать такого доступа, поскольку низкоуровневое программирование всегда сложнее, чем высокоуровневое, такое как Spring Data JPA.
Для более детального ознакомления и сравнения различий советую прочитать эту статью:
JDBC vs JPA:
JDBC. Абсолютно все библиотеки, взаимодействующие с базами данных, используют JDBC. В этом есть как преимущества, так и недостатки. По сути, JDBC — это Java-реализация стандартного подхода к работе с базами данных, реализованного во всех подобных технологиях:
Открыть соединение.
Открыть курсор.
Отправить запрос.
Обработать набор данных.
Закрыть результирующий набор / курсор.
Закрыть соединение.
И вы наверняка сталкивались с ситуацией, когда, выполняя десятки запросов, забывали закрыть соединение. А шесть недель спустя получали ужасный стек-трейс из-за того, что каким-то образом в базе данных закончились соединения или курсоры.
Вы быстро понимали в чем дело, чинили и отправляли в релиз. Но через восемь недель — та же самая ошибка.
Spring Data JPA помогает вам с простыми запросами и избавляет от необходимости работать с
EntityManagerиз JPA.Хотя рано или поздно вам все-равно придется писать JPQL-запросы вручную.
Но если вы думаете, что написав, сложный и тонко настроенный JPQL-запрос вы сможете каким-то образом настроить генерацию оптимального SQL-запроса, вас ждет большое разочарование.