Как выбрать между Hibernate и JDBC? - PullRequest
0 голосов
/ 03 января 2012

Мне нужно разработать проект Java EE. Я запутался после прочтения различных руководств по JDBC и Hibernate.

Прочитав эти уроки, я обнаружил, что у обоих есть свои плюсы и минусы. Теперь проблема в том, как я могу решить, какой из них лучше? Кроме того, я хотел бы знать, для какого типа проекта в целом я бы использовал JDBC, а для какого типа проекта я бы использовал Hibernate.

Используя тестовое приложение, в котором у меня 100 000 записей в одной таблице, я заметил, что при использовании JDBC я могу получить все записи за 3-4 секунды. Когда я использовал Hibernate, это заняло от 12 до 14 секунд.

Почему производительность Hibernate намного хуже, и как я могу увеличить производительность Hibernate, чтобы она была выше, чем у JDBC?

Ответы [ 3 ]

1 голос
/ 03 января 2012

Я не эксперт в hibernate, хотя я просто указываю на несколько моментов, почему я предпочитаю hibernate вместо простого jdbc на своем опыте.

Я использовал hibernate с аннотациями JPA в проекте maven

  1. Вы можете создать всю свою модель и определить отношения, используя аннотации. После запуска одной команды maven была создана вся реляционная база данных, таблицы и отношения на основе моих моделей. Что экономит много времени

  2. Hibernate преобразует набор результатов в ваши модели в фоновом режиме на основе ваших методов получения и установки. В отличие от jdbc вам не нужно будет извлекать набор результатов самостоятельно в модели. Опять вы сэкономили много времени

  3. Hibernate обычно выбирает все ваши реляционные объекты с нетерпением. Так что вам не нужно беспокоиться о написании запросов на объединение (вы всегда можете указать, хотите ли вы получать / ленивое извлечение)

4. Существуют методы для сохранения, обновления, удаления, где вы можете передать экземпляр модели какАргумент

Итак, если вы намереваетесь написать проект Java EE, который со временем будет расти, и вы хотите сэкономить время на написании дополнительных классов, вы можете перейти на Hibernate. Все это из моегоНебольшой опыт. Но в hibernate вы можете сделать гораздо больше. Пожалуйста, обратитесь к документам hibernate

0 голосов
/ 03 января 2012

Это не ситуация "или" или ".Есть много интересных ORM решений в дополнение к Hibernate.Я бы меньше беспокоился о производительности, если у вас нет особо интенсивного алгоритма работы с БД.Вы должны рассмотреть кривую обучения и ремонтопригодность исходного кода.Моя библиотека ORM стремится к простой кривой обучения и минимальному программированию: sormula

0 голосов
/ 03 января 2012

Ну, независимо от того, в какой тип проекта вы входите, Hibernate всегда сделает вашу жизнь проще. Это приближает операции с базой данных к вашей доменной модели. Вы запрашиваете базу данных, используя соглашение о классах java, то, как вы будете обращаться к полям в java, почему вы можете указывать поля в своем запросе (вместо того, чтобы вводить SQL, и каждый раз, когда вы вводите запрос, вам необходимо перепроверить, какое поле отображается какое имя столбца). Кроме того, hibernate вернет вам доменные объекты после нажатия на запрос к базе данных, и это всегда полезно, если вы посмотрите на JDBC, где вы должны сконструировать все это самостоятельно.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...