Pull to refresh

Comments 10

Интересно. А почему именно iBatis ? Не лучше ли использовать JPA ? С таким же успехом можно было бы написать GWT + Hibernate.
угу... и инфы по Hibernate больше. И баги быстрей фиксят. Ну и больше возможностей. Я уж не говорю про интеграцию с другими проектами. В свое время сравнивал многие ORM и пришел к Hibernate в конце концов.
кода больше = багов больше? ;) Стоит просто разделять сферы применения, когда "больше возможностей" не нужны - они могут мешать.

для привязки Hibernate к GWT возможно стоит обратить внимание на http://hibernate4gwt.sourceforge.net/
я не хочу начинать холивар на тему ORM тк гнусное это дело. Но, мне есть что ответить на "кода больше = багов больше". Hibernate достаточно динамично развивающийся open source проект и каждый баг фиксится относительно быстро, но скажу более, чтоб этот баг найти, прийдется постараться тк Hibernate пользуется очень большой порцент порграмистов и большинство, даже не тривиальных, багов уже найдено. Ну и насчет "больше возможностей не нужны - они могут мешать" - тут я бы назвал решающим фактором удобство API а не наличие "лишних возможностей". А то, что Hibernate API удобный(особенно после поддержки анотаций), можно сказать наблюдая очень популярные связки JBOSS+Hibernate или SPRING+Hibernate.
не стоит близко воспринимать шутку. Да, Hibernate больше, сложнее и комплексней. Но, не для всех задач хорош - как описал ниже, с "умной" базой клиенту не нужна "умная" ORM. В нашем случаях пришлось бы разрабтывать базы не под надобности логики, а еще и под удобство генерированных Hibernat'ом запросов - это уже не малость накладно.

Не стоит сравнивать апельсин с яблоком - нужно брать все под свои задачи. Даже если большинство программистов пишут, припустим, на java - все-равно легче решить какую-то задачу копирования файлов шел-скриптом.
тут мне сложно не согласится с "нужно брать все под свои задачи". Но я не вижу особой накладности в разработке базы под удобство генерированных Hibernatе'ом запросов. Все достаточно стандартно...и даже скажу более того - удобно.
думаю будет проще понять, если отмечу, что у нас БД-ориентированные разработки.

Вся основная бизнес-логика не на клиенте, а лежит непосредственно в БД - доступ к данным только через views и сохраненные функции, весь контроль на тригерах и правилах, задачи разделения доступа и поиска в данных решены тоже в БД. И уже вокруг БД идет создания инфраструктуры - и интерфейс пользователя (в котором и используем iBatis) только один с компонентов, причем логики в нем нет. Есть еще формы отчетности в клиенте - но они ходят себе отдельно (jasper, jfree reports, и еще что-то).
тогда действительно имеет смысл использовать простой POJO ORM... =)
Хотя всегда стоит посмотреть чуть-чуть в будущее. Вдруг когда-нить прийдется писать более серьезную бизнес логику.... и тогда будет мучительно больно переходить с
орма на орм. Хотя и это относительно... и уж не мне соватовать вам в этом решении тк всегда есть свои ньюансы узкие места=)
Просто в свое время, я переводил самописный ORM DB layer на hibernate, при строгих условиях, что все клиенты с существующими базами данных не должны даже почувствовать переход... вот помню настрадался=)
iBATIS - он упрощен только к одной функции - data mapping:
- значительно меньше объемом
- мапит объекты явы в SQL
- проще в использовании и за щет предыдущего очень гибок

Hibernate:
- мапит объекты непосредственно в базу, генерируя при этом свой SQL.

Стоит использовать оба, но естественно под свои задачи. Наши разроботки содержат всю лонику в базе, поэтому никаних сложных запросов нет. Побольше обращения к функциям - даже поиск вынесен в сохраненки, для нас - удобнее, мы их генерируем. Использовать при этом больший и довольно сложный Hibernate - излишек, проще на модель данных завязать 1-5 sql запросов. И при этом не парить голову как помочь ему сгенереривать необходимый запрос - поменше магии, быстрее разработка.

Если же первична не база, как в наших случаях, и вся логика в програме - Hibernate может быть удобнее.
Для лучшего примера, почему используем iBatis - закинул пост о нашей разработке: http://235.habrahabr.ru/blog/39085.html
В демке можно посмотреть живой пример в коде.
Sign up to leave a comment.

Articles

Change theme settings