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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Взаимодействие с БД 
:(
    Опции темы
val_vp
Дата 16.12.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 15.11.2006
Где: Днепродзержинск

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



Доброго времени суток.
Подскажите какой из подходов правильней.
Изучая "студенческий отдел кадров" я понял (но может и не понял) что правильное взаимодействие с БД следут вести по такой схеме.
интерфейсный класс, к примеру, TestUI
класс доступа к БД - TestDB

в классе TestUI есть private или protected поле типа TestDB, элементы интерфейса заполняются данными возвращаемые методами класса TestDB в виде ArrayList или Vector.

TestDB - с свою очередь делает всю работу по получению и интерпретации данных из БД, т.е.
его методы имеют "схематичный" вид, причем для каждого запроса свой геттер
Код

public Vector getSomthing(<Type1> key1) {
    внутри идет выполнение запроса, и возврат результатов, т.е.
    select * from <table1> where <id>=key1
}

public Vector getSomthingElse(<Type2> key2) {
    внутри идет выполнение запроса, и возврат результатов, т.е.
    select * from <table2> where <somefield>=key2
}


Но недавно видел реализацию несколько другого подхода, а именно
TestDB - делает только подключение к БД, а запрос формируется из вне, TestDB его механически выполняет
Код

public Vector getAllCase(String query) {
    просто выполнил query
}

т.е. вызов метода примерно такой
Код

Vector v1 = TestDBObj.getAllCase(select * from <table1> where <id>=key1);
Vector v2 = TestDBObj.getAllCase(select * from <table2> where <somefield>=key2);


плз. подскажите что правильней

Это сообщение отредактировал(а) tux - 16.12.2006, 14:12
PM MAIL WWW   Вверх
y3u
Дата 16.12.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 5
Всего: 13



все зависит от того что ты хочешь получить в конечном итоге. Если ахитектура приложения сложная, предпочтительней использовать бины для данного случая, если приложение простое и запросы вполне можно писать руками и резалтсеты обрабатывать особо не нужно, то можно и вторым вариантом воспользоваться... А вообще - это все хорошо в учебных целях. посмотри как работают с Hibernate или EJB 3.0 persistence API, это два самых распространненных и востребованных подхода...


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
val_vp
Дата 16.12.2006, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 15.11.2006
Где: Днепродзержинск

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



А вот из этих двух какой лучше. 

PM MAIL WWW   Вверх
y3u
Дата 16.12.2006, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 5
Всего: 13



а смотря как ты хочешь прогать и как, тут надо выбирать исходя из архитектуры. Если ты хочешь делать простое вебприложение, которе будет разворачиваться только на вебконтейнере, то можно обойтись хибернейтом, а если ты делаешь навороченое приложение с использованием EJB и какого-нить аппсервера, то можно использовать и персистанс АПИ. Лично мне больше нравится персистанс на EJB 3.0, потому как во-первых основан на хибернейте, во-вторых мне нравится джейбоссовская имплементация smile...


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
val_vp
Дата 18.12.2006, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 15.11.2006
Где: Днепродзержинск

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



y3u, Это простое приложение, которое берет случайным образом данные из БД и выводит их в элементы jframe-а или пока на консоль, что-то типа генератора экзаменационных билетов.
я такое делал на пхп, а сейчас пытаюсь реализовать это же на java.
Цитата

Если ты хочешь делать простое вебприложение, которе будет разворачиваться только на вебконтейнере, то можно обойтись хибернейтом...

не будет сильной наглостью попросить ссылки на применение данной технологии в java
Цитата

...использованием EJB и какого-нить аппсервера, то можно использовать и персистанс АПИ.

прочитал FAQ по j2ee, но чувствую такое пока не потяну.
PM MAIL WWW   Вверх
y3u
Дата 18.12.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 5
Всего: 13



Цитата(val_vp @  18.12.2006,  12:18 Найти цитируемый пост)
Это простое приложение, которое берет случайным образом данные из БД и выводит их в элементы jframe-а или пока на консоль, что-то типа генератора экзаменационных билетов

ну я говорил про вебприложение, а тут, видимо, имеется в виду десктопное приложение со свинговым интерфейсом, тут я не советчик smile Раз уж был опыт на PHP, значит будет проще делать тоже на вебтехнологиях, наверное... на тех же JSP, к примеру...

Цитата(val_vp @  18.12.2006,  12:18 Найти цитируемый пост)
не будет сильной наглостью попросить ссылки на применение данной технологии в java

боюсь, что у меня ссылок нету, разве что на тьюторил... могу вкратце сказать что понадобится:
1) Вебсервер с JSP/Servlet контейнером, скажем, самый популярный - Tomcat, взять можно тут. 
2) Берем хибернейт вот тут, как с ним работать - там весьма популярная документация
3) Еще понадобится коннектор к используемой БД

вот как-то так...


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

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

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


 




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


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

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