Hibernate. Object-oriented mapping. Основы. Пример с использованием HSQLDB

max аватар
126
Находится в разделах:

Если еще не стоит JDK - устанавливаем отсюда http://java.sun.com/j2se/1.5.0/download.jsp

Затем устанавливаем плагин к эклипсу - Eclipse Web Tools Platform (WTP)  отсюда - http://www.eclipse.org/webtools/

Теперь ставим HSQLDB. Кто не знает - это open-source  реляционная субд, написанная на java. Стягиваем отсюда:  http://www.hsqldb.org/

Устанавливаем приблуду под названием DbVisualizer. Это тулза для визуальной разработки баз данных, также написанная на java. DbVisualizer

 

Создаем базу данных в HSQLDB

Для этого заходим в корень распакованного архива и в командной строке вводим магическое:

Этим самым мы создали и запустили базу данных BookShopDB.

 

Теперь заходим в DbVisualizer для подключения к базе и вводим следующие настройки:

если он не сможет найти драйвер к hsqldb (у меня не нашел) - указываем ему путь к lib/hsqldb.jar.

Щас должны законнектиться.

 

Создаем таблицы в базе

создались три базы

Теперь вставляем тестовую информацию в таблицу:

 

Теперь будем щупать весь этот кал. Создаем новый проект в эклипсе, предварительно задав месторасположение дров - hsqldb.jar

Тестовый класс выглядит следующим образом:

 

Делаем тестовый запрос:

 

 

А теперь рассмотрим объектно-реляционное проецирование или просто маппинг.

В объектной модели мы используем нормальные JavaBeans для построения объектной модели. Эти JavaBeans именуются как "Plain Old Java Objects" или POJO, или "Старые добрые объекты java".

 

info picture Каждый POJO должен иметь конструктор без аргументов

 

Создаем три класса - для каждой таблицы:

Используя маппинг на классы, делаем следующее:

 

Сохранение объектов назад в базу

 

 

Проблемы данного подхода

 

 

Слишком много кода.

Ассоциации задаются вручную.

Зависимость от базы данных.

 


Конец
Теодор Рузвельт спешит напомнить, что не стоит повышать голос, но стоит держать наготове большую дубинку, и ты далеко пойдешь.

Отправить комментарий

CAPTCHA
Чтобы оставить комментарий, введите пожалуйста код, изображенный на картинке
Image CAPTCHA
Введите символы, изображенные на картинке