Несколько дней новогоднего волшебства:
Успейте начать обучение в 2018-ом году со скидкой до 30%!
Выбрать курс

MyBatis или Hibernate?

Java_Deep_21.08_site.png

Рано или поздно Java-разработчик задаёт себе вопрос: Hibernate или MyBatis? От ответа зависит архитектура проекта, а ответ, в свою очередь, зависит от задачи. Давайте разберёмся, что они такое и когда какой лучше.

Итак, Hibernate это ORM framework. Его полное название Hibernate ORM. Он полностью поддерживает JPA и, фактически, является имплементацией JPA. Его основная задача – понять, как размечены ваши классы аннотациями ORM, построить по ним схему и собирать объекты по строкам из базы. Hibernate сам пишет за вас запросы к базе. Для вас работа с базой выглядит как работа с объектами. Сохранить объект, загрузить объект, обновить объект. Как, собственно, и должно быть. Это же Object Relational Mapping!

MyBatis это Java persistence framework. Не ORM. MyBatis связывает методы интерфейса маппера с SQL-запросом. MyBatis не умеет создавать схему. И, честно говоря, вообще ничего о схеме не знает. Он превращает вызов метода в запрос к базе, и как результат вызова метода возвращает результат запроса.

Что лучше подходит для вашего проекта? Смотрите сами:

– Если у вас много простых объектов без сложных связей друг с другом – Hibernate. – Если у вас сложные запросы к базе на агрегацию данных – MyBatis. – Если вы готовы поручить фреймворку создавать и обновлять для вас схему – Hibernate. – Если у вас работа с хранимыми процедурами – MyBatis. – Если вы не хотите писать запросы сами, и работать с JPQLHIbernate. – Если вы хотите писать свой ORM (а его так или иначе придётся писать) – MyBatis.

Можно попробовать использовать оба фреймворка в одном проекте. Но мы такого на практике не встречали. Поэтому рано или поздно Java-разработчик встаёт перед вопросом: Hibernate или MyBatis?

А что думаете вы? Напишите в комментариях!

Автор
0 комментариев
Для комментирования необходимо авторизоваться