Hibernate для начинающих

Я сталкивался (да и не только я) с проблемой развертывания Hibernate и решил попробовать осветить данную тему. Hibernate — это популярный framework, цель которого связать ООП и реляционную базу данных. Работа с Hibernate сократит время разработки проекта в сравнении с обычным jdbc.

Для новичка программирования настройка framework часто вызывает затруднения. Помощь комьюнити с освещением базовых проблем поможет начинающим осваивать языки программирования быстрее. Статья предназначена только для начинающих в Java, которые впервые развертывают hibernate. Я развертывал hibernate на базе лицензионной IDEA.
Maven framework для автоматизации сборки проекта на основе POM, позволяющая подключать из интернета зависимости, не скачивая библиотеки в проект. POM (project object model) -декларативное описание проекта. Копируем название библиотек в xml формате с сайта mvnrepository.com.

Для начала создаёте структуру проекта maven:

hibernateMaven

Потом в pom.xml вставляем. Нам понадобятся две зависимости: hibernate-core и mysql-connector, но если вы хотите больше функционала — вы должны подключить больше зависимостей.

Существуют стандартные рекомендации подключать зависимости по отдельности, но я так не делаю.

<properties>
        <hibernate-version>5.0.1.Final</hibernate-version>
    </properties>
    <dependencies>
        <!--driver for connection to MYSql database -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.34</version>
        </dependency>

        <!-- Hibernate -->
        <!-- to start need only this -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate-version}</version>
        </dependency>

        <!-- for JPA, use hibernate-entitymanager instead of hibernate-core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${hibernate-version}</version>
        </dependency>
    </dependencies>

И щелкаем на Import Changes Enable Auto-Import, автоматически импортируя изменения.

image

Подключаемся к базе данных, которая развернута на локальном компьютере, выбираем поставщика баз данных MySQL.

image

Вводим имя базы данных, имя пользователя и пароль. Протестируйте соединение.

image

Выбираем проект и через framework support просим у хибернейта создать за нас Entity файлы и классы с Getter и Setter.

image

image

Выбираем Generate Persistence Mapping через кладку Persistence, выбираем jenerate Persistance Mapping, а в появившемся окне прописываем схему базы данных, выбираем prefix и
sufix к автоматически сгенерированным названиям. Будут сгенерированы названия xml файлов и классов с аннотациями:

image

Раскидайте файлы в таком порядке: .xml-файлы должны находится в папке с ресурсами, а сущности в папке java.

image

Дописываем в hibernate.cfg username и password (звёзды поставил я, а так пишите обычным шрифтом).

image

Вот и все! Дальше через класс main запускаем проект.

Это моя первая статья. Рассчитываю на здравую критику.
Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 32

    +2
    Для меня, как интересующегося Java, но никак не могущего собраться и таки стать «начинающим», один из главных вопросов «А зачем нам Hibernate?». В каких случая он жизнь облегчит? Если я собираюсь писать калькулятор для длинных чисел на Java, он мне нужен?
      –1
      Вторая строчка в статье:

      Hibernate — это популярный framework, цель которого связать ООП и реализационную базу данных


      Вы даже до нее не дочитали?
        +2
        Я имел в виду, что на этой части стоило бы остановиться поподробнее
          0
          Для вас поподробнее не нужно — просто потому, что конкретно вам этот фреймворк не нужен

          Те кому он нужен, знают о сушествовании такого КЛАССА фрейворков как ORM (ну или хотя-бы знакомы с концепцией ORM) и знают о существовании спецификации JPA, которая является частью спецификации Java EE и реализацией которого Hibernate и является — все эти познания получаются из других статей — более обобщенных… а вам пока не надо — когда понадобится тогда все и узнаете (причем к тому моменту процентов 90 подоюных вопросов отпадут сами собой)
        • UFO just landed and posted this here
        0
        На вопрос «зачем?» можно написать много всего, и мне кажется, что это не тема данной статьи. Автор молодец, на мой взгляд хорошее пособие для начинающих. Меньше текста, больше наглядности.
        +1
        > Потом в porn.xml вставляем

        Раз уж статья для начинающих, то не будем измываться над названиями файлов.

        Ок, мы настроили хибернейт. Возникает вопрос – и что? Что дальше? Как им пользоваться? Стоило бы показать примеры непосредственной работы с базой.

        И третий момент – попробуйте настроить хибернейт современным способом. XML – это уже не модно.
          0
          Да и чистый hibernate не модно. Все давно юзают Spring Data JPA.

          Вообще да, лучше бы расскали больше о том что это такое, про маппинги там, связи, всё это. А так вся статья из скриншотов, когда можно в идее выбрать одной галкой Spring Data JPA и получить структуру проекта.
          0
          Кстати, все плюшки для Хибернейт работают только в платной Идее?
            0
            Статья ради картинок получилась, в 3-м тысячилетии моветон настраивать Хибернейт через XML, И да, комрады правы, пора абстрагироваться от хибернейта в пользу того же Spring Data JPA/JPA3
              +1
              реализационную базу данных
              точно РЕАЛИЗАционная?
              framework ..., позволяющая
              а давно фреймворк стал женского рода?

              Кончайте набирать статьи лапой на телефоне, можно такого понаписать…
                0

                В мире Java все осталось в 90-х что-ли? Ради подключения ORM надо писать десятки простыней XML кода? Статья об ORM, в которой ничего не написано о собственно ORM.

                  0
                  такими темпами, запуск IDE скоро начнет вызывать затруднения…
                    0
                    *реляционную базу. И личный совет — сначала впредь стоит сильно стараться над материалом статьи, посмотреть был ли такой материал до этого и на сколько понятно ваше изложение.
                      0
                      реализационную базу

                      Не имелось ли тут ввиду слово «реляционная»
                        0

                        porn.xml это сильно.

                          0

                          porn.xml — опечатка по Фрейду

                            0
                            > Потом в porn.xml вставляем
                            измините на pom.xml, а то странное имя файла выходит
                            • UFO just landed and posted this here
                              • UFO just landed and posted this here
                                  0
                                  Вот появятся программисты, которые умеют настроить hibernate по такому туториалу, напишут в резюме что умеют в хибернейт (а что, по картинкам же все очень просто), а взрослые дяди потом теряют много времени, собеседую таких вот «программистов».
                                  И что самое плохое — что как бы не старался — такие статьи будут продолжать выходить, и такие «программисты» будут все больше и больше считать себя программистами.
                                    0
                                    А вы сразу стали опытным? Все по-разному начинают, и автор поста, не исключно, в скором будущем наберется опыта. Статья несерьезная, но вместо того, чтобы гнобить автора, лучше ткнуть его носом в те месте, где он накосячил и порекомендовать что-то из своего опыта.
                                      0
                                      Насчет «ткнуть носом»… Представьте себе, что вы этой, извините херней занимаетес уже… сколько там… 17 лет… чуть больше… Не в бкувальом смысле именно Hibernate а в том смысле что все это время так использовали тот или иной ORM фреймвок (чаще всего конечно hibernate, и чаще всего в связке со Spring ) практически в каждом проекте… какое вы получите удовольствие от вылавливания чужих косяков… да и не косяки это по большей части… само все придет с опытом… Но я лично совсем не против чтобы автор статьи и прочие из тех которые «умеют настроить hibernate» считали себя программистами… вон lslayer считает же себя таковым!
                                        0
                                        Само собой, лично вам мало статей на эту тему покажутся интересными и новыми, но с другой стороны – вы и не должны вычитывать статью и искать косяки. Я к тому, что критика должна быть, так сказать, продуктивной. Не просто сказать автору, что он псевдопрограммист, а сказать, что именно в статье является бредовым и порекомендовать вектор развития. Я тоже не против таких статей, это даже хорошо – человек как минимум начинает структурировать мысли
                                          0
                                          автор написал вполне адекватную статью
                                        0
                                        Нет. И я не об «сразу опытным». Я о том, что такие статьи должны заканчиваться ссылками на более другие статьи, где глубже раскрывается тема.
                                        Основной мой месседж — нельзя давать людям понять что %frameworkName% — это легко.
                                          +1
                                          Я торжественно даю понять людам, что Hibernate — это легко.

                                          Именно в этом и состоит смысл существования Hibernate (равно как и прочих фреймворков и библиотек — по крайней мере большинства из них) — облегчать и упрощать производственную деятельность прикладного разработчика программного обеспечения

                                          Что касается того, чем такие статьи ДОЛЖНЫ заканчиваться, а чем НЕ ДОЛЖНЫ… вы уж уточните сразу кто кому и сколько должен… а то автор этой статьи явно не очень хорошо умеет читать ваши мысли
                                            0
                                            Я торжественно даю понять людам, что Hibernate — это легко.

                                            Подскажите пожалуйста, сколько лет вы работаете с Hibernate?
                                              0
                                              Я там выше уже подсказал
                                                0
                                                Во! Вспомнил с точностью до года — первый коммерческий проект с использованием hibernate у меня был в 2003 году… Это был проект для довольно известного шведского ритейлера. это была какая-то бетта второй версии фреймворка.

                                                Но за самим проектом я следил намного раньше, и был знаком и с первой версией, которую не считал пригодной для коммерческой разработки (честно говоря у меня было такое мнение и по поводу второй версии, но в том проекте рулил не — мне просто пришлось принять технологический стек как данность).

                                                А в целом первый ORM собственной разработки я писал в 98-м году… тогда правда термина ORM не существовало, а java была… ну чем-то вроде прикола… Позже попробовал ORM мэппинг EJB (версии 1.1) — до изобретения аннотаций еще мнооого времени оставалось! И это тоже было легко! по тем временам конечно… Более того — благодаря своему знакомству с EJB меня пригласили на отличнуюю работу в одну из стран загнивающего запада (причем выбор был из двух вариантов). Ну а позже и hibernate подтянулся… причем я сразу стал его испольовать в связке со Spring (и с тех пор мой подход ниразу не изменился). Вот Spring это действительно сложно… А Hibernate это безусловно легко. Причины того что «Spring это действительно сложно» состоят в том, что Spring это не фреймворк в классическом понимании — это скорее набор фреймворков, предназначенный для конструирования приложений
                                      0
                                      Так и надо было назвать статью: «Как я настраиваю hibernate под платной IDEA».
                                      Ну ведь ничего ж вообще про hibernate по существу (ну кроме пары азацев маркетоидных песен в начале). Ни примера программы, ни слова о том, как к нему подступиться тому, кто привык, скажем, к jdbc.

                                      Only users with full accounts can post comments. Log in, please.