Будьте в спящем режиме По сравнению с [закрытым] iBATIS

73
задан Jonas 7 August 2010 в 22:25
поделиться

3 ответа

Ибатис и Хибернат - совершенно разные звери.

Я склонен смотреть на это так: Гиберната работает лучше, если ваш взгляд более объектно-ориентирован. Если же вид больше ориентирован на базу данных , то Ibatis - гораздо более удачный выбор.

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

Если Вы имеете дело с "унаследованной" схемой базы данных, где необходимо писать достаточно сложные SQL-запросы, то, скорее всего, Ibatis будет работать лучше.

HQL (Hibernate Query Language - Язык гибернатных запросов) - это еще один язык, который Вам придется выучить, и даже тогда Вы, вероятно, найдете случаи, когда Вам все еще нужно написать SQL. Более того, есть шанс, что некоторые потратят полдня на то, чтобы вычислить правильную комбинацию XML, свойств, аннотаций и т.д., чтобы заставить Hibernate сгенерировать выполнимый SQL-запрос.

На этот вопрос нет универсального ответа "А лучше, чем В".

180
ответ дан 24 November 2019 в 12:06
поделиться

Клетус проделал большую работу, подытоживая это сравнение. Hibernate хорошо работает, когда вы управляете моделью данных, и более объектно-ориентирован, в то время как iBATIS хорошо работает, когда вам нужно интегрироваться с существующей базой данных и более ориентирован на данные.

Также мне кажется, что в Гибернате немного больше кривой обучения. С iBATIS довольно легко понять, что происходит, в то время как с Hibernate происходит больше "волшебства". Другими словами, новичкам будет проще использовать и понимать iBatis.

Но я не говорю, что вы должны предпочитать iBatis, iBatis и Хибернат просто отличаются друг от друга, как было сказано выше.

И, кстати, если вы предпочитаете Гибернат, может быть, стоит подумать об использовании стандартизированных JPA и EJB 3.0 (JSR-220) аннотаций к объекту/реляционному отображению, предоставленных в Hibernate Annotations.

18
ответ дан 24 November 2019 в 12:06
поделиться

если вы уже используете Spring, я бы начал с Spring JDBC, а не погружался бы прямо в Hibernate или iBatis. Если вы напишете свой уровень персистентности в терминах интерфейсов, у вас не должно возникнуть проблем с переключением реализаций после того, как вы получите Hibernate или iBatis.

Нет причин, по которым это должно быть решение "все или ничего". Используйте то, что лучше всего подходит для вашей ситуации.

6
ответ дан 24 November 2019 в 12:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: