![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
Может кто-нибудь привести пример хорошо спроектированого (удобного в использовании) DAO интерфейса?
Чтобы была предусмотрена возможность делать разнородные выборки, груповые update'ы и delete'ы по какому-то признаку или набору признаков и т.п. И все это как-то абстрактно оформлено... Поправьте плз, если хочу странного... |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
this / это смотрел ? Это сообщение отредактировал(а) v2v - 21.5.2008, 00:00 |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
v2v
А вот что там вместо точечек будет? |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
Maksym, List<Object>
![]() параметры зависят от твоих объектов и поставленной задачи, универсальный я думаю будет сложновато придумать ... Это сообщение отредактировал(а) v2v - 21.5.2008, 00:07 |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
Паттерны это все здорово. А какая-нибудь реализация, грамотная...в качестве примера..?
|
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
||||
|
||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 24 Всего: 144 |
Молодец, Maksym, интересный вопрос поднял.
Если говорить о готовых разработках, то мне таковые не попадались. Но некоторыми мыслями по теме поделиться могу, поскольку многие вещи довольно много обдумывал и кое-что реализовал в своих проектах. Сначала о том, что буквально только что пришло в голову: а ведь можно сделать универсальный параметризованый ДАО! Давайте попробуем плясать вот от такого:
Тогда для простых случаев у нас уже будет готовая дефолтная реализация, и вместо того чтобы писать класс BookDao, мы просто заведем переменную Dao<Book> bookDao = new GenericDao<Book>(). Тут возникает вопрос: а как в общем виде реализовать приведенные методы для наперед неизвестного класса-сущности? В какую таблицу обращаться, какие поля обновлять? Самый простой ответ - через любое ORM-средство, которое владеет всей этой инфой. Более того, для нашего удобства все это хозяйство даже стандартизовали в форме JPA, чтобы люди не страдали выдумывать свои собственные аннотации. Теперь рассмотрим запросы. Вообще это форменное безобразие, что в Java до сих пор нет устаканенного механизма метаданных и условных выражений. Поэтому я для собственных нужд его всегда далаю сам. В результате получается чрезвычайно удобная вещь, когда я могу например в форумном приложении описать несколько информационных блоков примерно таким образом: список самых горячих топиков, список самых актиивных юзеров, самые последние посты, и т. д. Обратим внимание, что разные списки содержат сущности разных типов, но фреймворк все разруливает и в итоге получается как надо. Но у меня так получается за счет того, что я отказался от идеи POJO для классов-сущностей, и завел для них общий базовый класс с некоторыми хитрыми штучками внутри. Да, это создает зависимость, и в свете сегодняшних тенденций к уменьшению инвазивности может считаться крамолой, поэтому я такой подход никому не посоветую. Но сам втихушку буду пользоваться и радоваться, ибо очень уж удобно ![]() Вот такие вот мысли вслух. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
Stampede, вторая часть как раз самая интересная. немогли бы вы поподробней (на примере) объяснить как вы это делаете? |
|||
|
||||
SuperFly |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 19.11.2007 Репутация: нет Всего: нет |
А зачем нам держаться за POJO где не попадя? Я поддерживаю идею интерфейсов с разной реализацией.
|
|||
|
||||
fixxer |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 6 Всего: 27 |
Как всегда, все уже украдено до нас. http://www.hibernate.org/328.html -------------------- ![]() |
||||
|
|||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
Stampede
Вот, человек понял, что я хочу узнать ![]() По второй части твоего поста, о чем речь в общем и целом понятно, но действительно интересно услышать чуть детальнее. fixxer Хороший линк, спасибо. Сам реализовывать не пробовал? |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
там внизу пример, схожий на то , что Stampede и Fixxer описали.
http://www.ibm.com/developerworks/java/lib...pop1/index.html |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
я вопроса не понял ? меня игнорят ? ссылка не та что нада ?
тогда обьясните плз, мне тоже интересно, я ж не просто так линку скинул ![]() |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
эта ссылка уже обсудилась в теме, будь внимательней. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |