В чем разница между JPA и JDBC?


Ответ 1:

JDBC - это стандартный инструмент для непосредственного подключения к базе данных и запуска SQL для нее, например select * from TableName и т. Д. Можно возвращать наборы данных, которые пользователь может обрабатывать в своем приложении, и он может выполнять все обычные действия, такие как обновление, удаление , вставьте процедуры и т. д. Это одна из базовых технологий, лежащих в основе большинства администраторов баз данных Java (включая поставщиков JPA).

Одна из основных проблем с традиционными приложениями JDBC заключается в том, что у пользователя часто может быть какой-то дрянной код, в котором логика смешана с SQL, происходит много сопоставлений между наборами данных и объектами и т. Д.

JPA является официальным инструментом для реляционного сопоставления объектов. JPA - это технология, которая позволяет пользователю отображать объекты в коде и в таблицах базы данных. JPA может «скрыть» SQL от разработчика, чтобы все они имели дело с классами Java, а поставщик позволяет сохранять их и загружать их удаленно. В основном, файлы сопоставления XML или аннотации на установщики и получатели могут использоваться, чтобы сообщить провайдеру JPA. какие поля в пользовательском объекте соответствуют каким полям в БД. hibernate является самым популярным провайдером JPA.

некоторые другие примеры, включая OpenJPA, toplink и т. д.

Hibernate и другие популярные провайдеры для JPA пишут SQL и используют JDBC для чтения и записи из и в БД.

Спасибо.

если вам нравится мой ответ, то проголосуйте.


Ответ 2:

Было бы немного сложно понять разницу между ними, если вы новичок. Я думаю, вы должны начать с понимания различий между JDBC и Hibernate в первую очередь. Я надеюсь, что вы знаете, что такое JDBC, хотя это краткое описание: JDBC означает Java Database Connectivity. JDBC - это API-интерфейс Java для подключения и выполнения запроса с помощью базы данных. Он предоставляет драйверы для связи с БД. Вы можете использовать JDBC API для доступа к табличным данным, хранящимся в любой реляционной базе данных. С помощью JDBC API мы можем сохранять, обновлять, удалять и извлекать данные из базы данных.

Теперь что такое Hibernate? Это структура, в отличие от JDBC, вы должны импортировать библиотеки Hibernate, прежде чем использовать ее, в то время как JDBC является частью самого J2SE. Hibernate делает то же самое, для чего разработан JDBC, но можно сказать, что Hibernate - продвинутый уровень JDBC. Hibernate упрощает разработку Java-приложения для взаимодействия с базой данных. Это инструмент ORM, то есть он сопоставляет объекты Java с таблицами БД. Класс Java может представлять таблицу в БД. Например, если вы отобразили таблицу «emp_26» как класс Employee в Hibernate, то вы бы написали простой объектно-ориентированный запрос для извлечения всех сотрудников из таблицы empl_26: «from Employee» // в Hibernate «select * from emp_26» // in JDBC.

В Hibernate есть множество функций, таких как кэш, отображение ассоциаций, отображение наследования, HQL, разбиение на страницы и многие другие, которые недоступны в JDBC.

Что касается JPA, это спецификация, это набор классов и интерфейсов. JPA нужен инструмент для его реализации, и этот инструмент может быть Hibernate. Внедряя JPA, вы можете сделать то же самое, что и Hibernate, но в формате JPA. Если JPA - это танец, тогда Hibernate или какой-то другой инструмент необходим для его создания. Кстати, это не значит, что Hibernate не может танцевать без JPA, у Hibernate тоже есть свой собственный танец.


Ответ 3:

JDBC - это стандарт для непосредственного подключения к БД и запуска SQL для него - например, SELECT * FROM USERS и т. Д. Могут быть возвращены наборы данных, которые вы можете обрабатывать в своем приложении, и вы можете делать все обычные вещи, такие как INSERT, DELETE, запускать хранимые процедуры и т. д. Это одна из базовых технологий, лежащих в основе доступа к базам данных Java (включая поставщиков JPA).

Одна из проблем с традиционными приложениями JDBC заключается в том, что у вас часто может быть какой-то дрянной код, в котором происходит много сопоставлений между наборами данных и объектами, логика смешивается с SQL и т. Д.

JPA является стандартом для реляционного сопоставления объектов. Это технология, которая позволяет отображать объекты в коде и в таблицах базы данных. Это может «скрыть» SQL от разработчика, так что все, с чем они имеют дело, это классы Java, а провайдер позволяет вам сохранять их и магически загружать. Главным образом, файлы сопоставления XML или аннотации на методах получения и установки могут использоваться, чтобы сообщить поставщику JPA, какие поля в вашей карте объектов и какие поля в БД. Самым известным провайдером JPA является Hibernate, так что это хорошее место для начала с конкретных примеров.

Другие примеры включают OpenJPA, toplink и т. Д.