Для новичка программирования настройка framework часто вызывает затруднения. Помощь комьюнити с освещением базовых проблем поможет начинающим осваивать языки программирования быстрее. Статья предназначена только для начинающих в Java, которые впервые развертывают hibernate. Я развертывал hibernate на базе лицензионной IDEA.
Maven framework для автоматизации сборки проекта на основе POM, позволяющая подключать из интернета зависимости, не скачивая библиотеки в проект. POM (project object model) -декларативное описание проекта. Копируем название библиотек в xml формате с сайта mvnrepository.com.
Для начала создаёте структуру проекта maven:
Потом в 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, автоматически импортируя изменения.
Подключаемся к базе данных, которая развернута на локальном компьютере, выбираем поставщика баз данных MySQL.
Вводим имя базы данных, имя пользователя и пароль. Протестируйте соединение.
Выбираем проект и через framework support просим у хибернейта создать за нас Entity файлы и классы с Getter и Setter.
Выбираем Generate Persistence Mapping через кладку Persistence, выбираем jenerate Persistance Mapping, а в появившемся окне прописываем схему базы данных, выбираем prefix и
sufix к автоматически сгенерированным названиям. Будут сгенерированы названия xml файлов и классов с аннотациями:
Раскидайте файлы в таком порядке: .xml-файлы должны находится в папке с ресурсами, а сущности в папке java.
Дописываем в hibernate.cfg username и password (звёзды поставил я, а так пишите обычным шрифтом).
Вот и все! Дальше через класс main запускаем проект.
Это моя первая статья. Рассчитываю на здравую критику.
Комментарии (31)
tmn4jq
26.01.2017 17:22+1> Потом в porn.xml вставляем
Раз уж статья для начинающих, то не будем измываться над названиями файлов.
Ок, мы настроили хибернейт. Возникает вопрос – и что? Что дальше? Как им пользоваться? Стоило бы показать примеры непосредственной работы с базой.
И третий момент – попробуйте настроить хибернейт современным способом. XML – это уже не модно.4410
26.01.2017 17:58Да и чистый hibernate не модно. Все давно юзают Spring Data JPA.
Вообще да, лучше бы расскали больше о том что это такое, про маппинги там, связи, всё это. А так вся статья из скриншотов, когда можно в идее выбрать одной галкой Spring Data JPA и получить структуру проекта.
gshock
26.01.2017 23:45Статья ради картинок получилась, в 3-м тысячилетии моветон настраивать Хибернейт через XML, И да, комрады правы, пора абстрагироваться от хибернейта в пользу того же Spring Data JPA/JPA3
Revertis
27.01.2017 00:40+1реализационную базу данных
точно РЕАЛИЗАционная?
framework ..., позволяющая
а давно фреймворк стал женского рода?
Кончайте набирать статьи лапой на телефоне, можно такого понаписать…
immaculate
27.01.2017 20:51В мире Java все осталось в 90-х что-ли? Ради подключения ORM надо писать десятки простыней XML кода? Статья об ORM, в которой ничего не написано о собственно ORM.
breakoffbrain
28.01.2017 18:15*реляционную базу. И личный совет — сначала впредь стоит сильно стараться над материалом статьи, посмотреть был ли такой материал до этого и на сколько понятно ваше изложение.
Sapporo
28.01.2017 18:15> Потом в porn.xml вставляем
измините на pom.xml, а то странное имя файла выходит
kaktus_4ever
28.01.2017 18:18-1Удалите этот пост.
Так нельзя. Все начаось с веселого porn.xml а закончилось страшной реализационной базой данных.
lslayer
31.01.2017 11:57Вот появятся программисты, которые умеют настроить hibernate по такому туториалу, напишут в резюме что умеют в хибернейт (а что, по картинкам же все очень просто), а взрослые дяди потом теряют много времени, собеседую таких вот «программистов».
И что самое плохое — что как бы не старался — такие статьи будут продолжать выходить, и такие «программисты» будут все больше и больше считать себя программистами.tmn4jq
31.01.2017 12:43А вы сразу стали опытным? Все по-разному начинают, и автор поста, не исключно, в скором будущем наберется опыта. Статья несерьезная, но вместо того, чтобы гнобить автора, лучше ткнуть его носом в те месте, где он накосячил и порекомендовать что-то из своего опыта.
AlexPu
31.01.2017 14:15Насчет «ткнуть носом»… Представьте себе, что вы этой, извините херней занимаетес уже… сколько там… 17 лет… чуть больше… Не в бкувальом смысле именно Hibernate а в том смысле что все это время так использовали тот или иной ORM фреймвок (чаще всего конечно hibernate, и чаще всего в связке со Spring ) практически в каждом проекте… какое вы получите удовольствие от вылавливания чужих косяков… да и не косяки это по большей части… само все придет с опытом… Но я лично совсем не против чтобы автор статьи и прочие из тех которые «умеют настроить hibernate» считали себя программистами… вон lslayer считает же себя таковым!
tmn4jq
31.01.2017 16:20Само собой, лично вам мало статей на эту тему покажутся интересными и новыми, но с другой стороны – вы и не должны вычитывать статью и искать косяки. Я к тому, что критика должна быть, так сказать, продуктивной. Не просто сказать автору, что он псевдопрограммист, а сказать, что именно в статье является бредовым и порекомендовать вектор развития. Я тоже не против таких статей, это даже хорошо – человек как минимум начинает структурировать мысли
lslayer
31.01.2017 14:35Нет. И я не об «сразу опытным». Я о том, что такие статьи должны заканчиваться ссылками на более другие статьи, где глубже раскрывается тема.
Основной мой месседж — нельзя давать людям понять что %frameworkName% — это легко.AlexPu
31.01.2017 15:09+1Я торжественно даю понять людам, что Hibernate — это легко.
Именно в этом и состоит смысл существования Hibernate (равно как и прочих фреймворков и библиотек — по крайней мере большинства из них) — облегчать и упрощать производственную деятельность прикладного разработчика программного обеспечения
Что касается того, чем такие статьи ДОЛЖНЫ заканчиваться, а чем НЕ ДОЛЖНЫ… вы уж уточните сразу кто кому и сколько должен… а то автор этой статьи явно не очень хорошо умеет читать ваши мыслиlslayer
31.01.2017 15:12Я торжественно даю понять людам, что Hibernate — это легко.
Подскажите пожалуйста, сколько лет вы работаете с Hibernate?AlexPu
01.02.2017 11:35Я там выше уже подсказал
AlexPu
01.02.2017 11:54Во! Вспомнил с точностью до года — первый коммерческий проект с использованием hibernate у меня был в 2003 году… Это был проект для довольно известного шведского ритейлера. это была какая-то бетта второй версии фреймворка.
Но за самим проектом я следил намного раньше, и был знаком и с первой версией, которую не считал пригодной для коммерческой разработки (честно говоря у меня было такое мнение и по поводу второй версии, но в том проекте рулил не — мне просто пришлось принять технологический стек как данность).
А в целом первый ORM собственной разработки я писал в 98-м году… тогда правда термина ORM не существовало, а java была… ну чем-то вроде прикола… Позже попробовал ORM мэппинг EJB (версии 1.1) — до изобретения аннотаций еще мнооого времени оставалось! И это тоже было легко! по тем временам конечно… Более того — благодаря своему знакомству с EJB меня пригласили на отличнуюю работу в одну из стран загнивающего запада (причем выбор был из двух вариантов). Ну а позже и hibernate подтянулся… причем я сразу стал его испольовать в связке со Spring (и с тех пор мой подход ниразу не изменился). Вот Spring это действительно сложно… А Hibernate это безусловно легко. Причины того что «Spring это действительно сложно» состоят в том, что Spring это не фреймворк в классическом понимании — это скорее набор фреймворков, предназначенный для конструирования приложений
alexeykuzmin0
Для меня, как интересующегося Java, но никак не могущего собраться и таки стать «начинающим», один из главных вопросов «А зачем нам Hibernate?». В каких случая он жизнь облегчит? Если я собираюсь писать калькулятор для длинных чисел на Java, он мне нужен?
JDBiber
Вторая строчка в статье:
Вы даже до нее не дочитали?
alexeykuzmin0
Я имел в виду, что на этой части стоило бы остановиться поподробнее
AlexPu
Для вас поподробнее не нужно — просто потому, что конкретно вам этот фреймворк не нужен
Те кому он нужен, знают о сушествовании такого КЛАССА фрейворков как ORM (ну или хотя-бы знакомы с концепцией ORM) и знают о существовании спецификации JPA, которая является частью спецификации Java EE и реализацией которого Hibernate и является — все эти познания получаются из других статей — более обобщенных… а вам пока не надо — когда понадобится тогда все и узнаете (причем к тому моменту процентов 90 подоюных вопросов отпадут сами собой)
alexeykuzmin0
Спасибо
NLO
НЛО прилетело и опубликовало эту надпись здесь
1000islands
На вопрос «зачем?» можно написать много всего, и мне кажется, что это не тема данной статьи. Автор молодец, на мой взгляд хорошее пособие для начинающих. Меньше текста, больше наглядности.