Зачем использовать JPA вместо написания SQL-запроса с использованием JDBC? ⇐ JAVA
-
Гость
Зачем использовать JPA вместо написания SQL-запроса с использованием JDBC?
Я читал несколько статей о том, что такое JPA (Java Persistent API) и какой поставщик его поддерживает (DataNucleus, JBoss Hibernate и т. д.)
У меня нет опыта работы с ORM (реляционное сопоставление объектов).
На данный момент я написал собственные классы баз данных, используя DTO и DAO. Пока что я доволен тем, что у меня есть, но хотелось бы знать, почему люди используют JPA вместо файла Java, содержащего SQL.
Я считаю, что написать класс DAO можно, как показано ниже.
публичный класс DAOUsers { общественная недействительность InsertNewUser (DTO DtoUser) { Строковый запрос = "INSERT INTO пользователи(имя пользователя, адрес)" + "VALUES(DtoUser.имя_пользователя, DtoUser.адрес)"; Исполнитель.run(запрос); } } Я узнал, что JPA использует JPQL, язык постоянных запросов Java, и он работает с объектом сущности, а не напрямую с таблицами базы данных.
Насколько я понимаю (поправьте меня, если я ошибаюсь), этот объект сущности здесь такой же, как мой объект DTO (что-то вроде bean-компонента?)
Но в любом случае, какие преимущества дает JPA по сравнению с написанием чистого SQL в моем файле? Кажется, что использование аннотаций, требуемых JPA, и нечитаемость SQL кажется мне не очень привлекательным.
Если вам нужны дополнительные разъяснения, дайте мне знать, я новичок в этой теме и хотел бы услышать мнение.
Я читал несколько статей о том, что такое JPA (Java Persistent API) и какой поставщик его поддерживает (DataNucleus, JBoss Hibernate и т. д.)
У меня нет опыта работы с ORM (реляционное сопоставление объектов).
На данный момент я написал собственные классы баз данных, используя DTO и DAO. Пока что я доволен тем, что у меня есть, но хотелось бы знать, почему люди используют JPA вместо файла Java, содержащего SQL.
Я считаю, что написать класс DAO можно, как показано ниже.
публичный класс DAOUsers { общественная недействительность InsertNewUser (DTO DtoUser) { Строковый запрос = "INSERT INTO пользователи(имя пользователя, адрес)" + "VALUES(DtoUser.имя_пользователя, DtoUser.адрес)"; Исполнитель.run(запрос); } } Я узнал, что JPA использует JPQL, язык постоянных запросов Java, и он работает с объектом сущности, а не напрямую с таблицами базы данных.
Насколько я понимаю (поправьте меня, если я ошибаюсь), этот объект сущности здесь такой же, как мой объект DTO (что-то вроде bean-компонента?)
Но в любом случае, какие преимущества дает JPA по сравнению с написанием чистого SQL в моем файле? Кажется, что использование аннотаций, требуемых JPA, и нечитаемость SQL кажется мне не очень привлекательным.
Если вам нужны дополнительные разъяснения, дайте мне знать, я новичок в этой теме и хотел бы услышать мнение.
Мобильная версия