2010-09-21 1 views
0

Мы строим веб-приложение, ориентированное на базу данных. Сначала мы начали использовать iBatis.
В какой-то момент мы думали, что iBatis может быть не очень полезен по следующим причинам:
1. Нужна помощь. код, чтобы определить, нужно ли нам вставлять/обновлять/удалять из БД
2. Appl. код будет отличаться от объектно ориентированного на ориентированный на базу данных.
3. Необходимо написать много кодовых табличек кодов для многих простых вещей, таких как сущность версий (во избежание грязных обновлений БД)
и многие другие ...
Теперь мы более чем на полпути, решив пойти с Hibernate. Мы рассматриваем реальные причины CONVINCING, чтобы оправдать наш выбор Hibernate по сравнению с iBatis.
Hibernate vs iBatis

Я понимаю, что iBatis и Hibernate - это хорошие рамки, которые хорошо работают в собственных целях для разных нужд. Тем не менее мы пытаемся спасти наши усилия, пытаясь оправдать наш выбор Hibernate.

Было бы очень полезно услышать от вас экспертов. Обратите внимание, что мы твердо поддерживаем сохранение Hibernate.

+2

Возможный дубликат [Hibernate Vs iBATIS] (http://stackoverflow.com/questions/1984548/hibernate-vs-ibatis). И посмотрите на http://stackoverflow.com/search?q=hibernate+vs+ibatis для многих других (пожалуйста, подумайте о том, чтобы выполнить поиск, прежде чем задавать вопрос). –

+0

Я просмотрел сообщение, которое вы упомянули, прежде чем я задал этот вопрос. Однако моя потребность немного отличается. – Krish

ответ

0

Hibernate следует спецификациям JPA, который позволяет напрямую не зависать (блокировка поставщика) в спящем режиме. Если возникнет такая необходимость, вы можете переключиться на другую реализацию, такую ​​как TopLink.

С Hibernate вы можете сделать свой код 90% (или 100%, если вы не используете прямые запросы JDBC), независимую от базы данных (используя HQL), то есть тот же код будет работать на MSSQL, MySQL или Oracle (без учета любые существенные изменения, внесенные в уровень доступа к данным).

Hibernate - очень высокий per-formant с поддержкой кэширования (как первого уровня, так и второго уровня).

Hibernate - очень хороший ORM (объектно-реляционное сопоставление) по сравнению с iBatis, где вы в основном заканчиваете вручную кодирование различных запросов в XML и большую часть времени люди, использующие hibernate, возвращают карты с данными (из-за накладных расходов на настройку сопоставление от объектов БД к классам в Java) и, следовательно, в конечном итоге с кодом, где одно удаление или добавление поля вызывает серьезные изменения в коде.

+0

Независимость базы данных в нашем случае не очень помогает. Мы используем несколько нестандартных функций Oracles. – Krish

+0

Еще один момент. Если вы используете спящий режим (по сравнению с iBatis), вы можете иметь осязание (горизонтальное разбиение). –