Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение объектов в БД, файл, Сохранение объектов в БД (MySQL), файл 
:(
    Опции темы
Platon
  Дата 19.6.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Здравствуйте уважаемые.
Вопрос больше по проектированию.

Есть классы, которые располагаются в памяти.
MovementUnit -> SeaUnit, EarthUnit
У них естественно все свое.

Теперь есть необходимость извлекать и сохранить эти объекты в БД.
вроде ничего слоджного, сделать 3 таблицы
movement, sea, earth

но потом я ощутил дискомфорт, когда начал делать sql-обертку, типа
DBMovementIUnit, DBSeaUnit, DBEarthUnit

и тут проблема. От какого класса наследоваться? Напрямую от первых классов или от работающего с БД класса(у меня есть еще SqlItem, наделенная возможностью сохраняться удаляться и обновляться).
или вообще, как правильно?

Попробовал наследоваться от SqlItem, больших результатов это не принесло.
если я еще как то выкрутился с созданием SeaUnit и EarthUnit, то если наследники появятся, проблемы будут колоссальные. после чего решил сюда и написать.

Как мне правильно оформить композицию объекта, наделенного логикой и объекта, манипулирующего его сохранением. причем не забывая о возможности сохранение в простой типизированный файл или хранить просто в памяти.
PM MAIL ICQ   Вверх
powerOn
Дата 19.6.2007, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Цитата(Platon @  19.6.2007,  18:53 Найти цитируемый пост)
но потом я ощутил дискомфорт, когда начал делать sql-обертку, типа
DBMovementIUnit, DBSeaUnit, DBEarthUnit

А может Hibernate поможет?

Цитата(Platon @  19.6.2007,  18:53 Найти цитируемый пост)
От какого класса наследоваться? 

Быть может не наследоваться, а использовать DB* классы в качестве модели? Разделить объект на модель и контроллер. Класс логики использовать в качестве контроллера. Модель сохранять в БД. Set-тить модель контроллеру, и пусть он с ней работает.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
chief39
Дата 19.6.2007, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Хух... "белый снег, белый песец - песец ничё не понятно"(с)

А ну давайка подробнейка.

Что за классы, что представляет собой каждый их объект.
Эти классы - походу value objects, просто хранилки данных.
а 
Цитата(Platon @  19.6.2007,  17:53 Найти цитируемый пост)
SqlItem
 - это свой скл-враппер поверх чистого джейдибиси(я так понял)

Кого куда и как - просто абзац ничё неясно.

Какие технологии? чистый jdbc?



--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
Platon
Дата 19.6.2007, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Цитата(powerOn @  19.6.2007,  20:04 Найти цитируемый пост)
А может Hibernate поможет?

нет не стоит.
Цитата(powerOn @  19.6.2007,  20:04 Найти цитируемый пост)
Разделить объект на модель и контроллер.

наверно, я делал, DB* инкапсулирует в себе соответствующий класс в памяти.
DB* знает какие поля его соответствующего класса надо сохранять и как их обозвать, фактически формирует SQL-запрос.


Цитата(chief39 @  19.6.2007,  20:07 Найти цитируемый пост)
Что за классы, что представляет собой каждый их объект.

Планировалось, что MovementUnit родитель SeaUnit и EarthUnit, они содержат логику работы.
DB* их SQL-оболочки.

Цитата(chief39 @  19.6.2007,  20:07 Найти цитируемый пост)
- это свой скл-враппер поверх чистого джейдибиси(я так понял)


Да, все правильно поняли.
Да, использую чистый jdbc.


Цитата(chief39 @  19.6.2007,  20:07 Найти цитируемый пост)
Эти классы - походу value objects, просто хранилки данных.

ну, я до чтения этих постов думал, что не просто value objects, а реализующие определенный интерфейс, т.е.
DBMovementUnit implements MovementUnitInterface
MovementUnit implements MovementUnitInterface
SeaUnitInterface extends MovementUnitInterface
EarthUnitInterface extends MovementUnitInterface
ну и т.д.

но сейчас после чтения поста powerOn, я вижу еще одно неплохое решение, буду пробовать.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1169 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.