powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как использовать SQL в проектах?
18 сообщений из 43, страница 2 из 2
Как использовать SQL в проектах?
    #38741491
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ORM - для работы с данными и бизнес-логики
SQL, сохраненные процедуры - для аналитики
триггеры - не знаю, нужны ли сейчас, разве что для оперативного вычисления агрегированных значений
Естественно, четкого разделения нет, всё определяется конкретной задачей. Например,
бизнес-логика может активно использовать аналитические данные.

в то же время для аналитики могут применяться специальные инструменты типа OBI, где sql требуется только на этапе проектирования репозитория

тяжкое наследие в виде легаси года и супер изобретений предшественников. Бывает, попадаются базы с бизнес-локикой в километровых ХП, а бывает - "объектные" базы, типа того, что сделано в 1с. Тут ни ORM, ни SQL не помогут, только встроенный фреймворк
и т.п.
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741500
For All
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulКак только идет расхождение и из данных могут извлекаться различные объекты, то сразу ORM плавно перетекает в программирование ХП.Hibernate такое тоже умеет делать, не обязательно ХП писать.
Даже если никак без ХП не обойтись, то это ещё не повод выкинуть Hibernate.
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741545
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For Allmad_nazgulКак только идет расхождение и из данных могут извлекаться различные объекты, то сразу ORM плавно перетекает в программирование ХП.Hibernate такое тоже умеет делать, не обязательно ХП писать.
Даже если никак без ХП не обойтись, то это ещё не повод выкинуть Hibernate.

Повод. Зачем нужен лишний слой, если можно без него?!
Возможности HQL намного меньше возможностей SQL.
Поэтому, то что можно сделать запросом SQL, в Hibernate приходиться писать ч/з ХП.
Так вот, зачем себя ограничивать, когда можно этого не делать?!
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741624
For All
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulFor Allпропущено...
Hibernate такое тоже умеет делать, не обязательно ХП писать.
Даже если никак без ХП не обойтись, то это ещё не повод выкинуть Hibernate.

Повод. Зачем нужен лишний слой, если можно без него?!
Возможности HQL намного меньше возможностей SQL.
Поэтому, то что можно сделать запросом SQL, в Hibernate приходиться писать ч/з ХП.
Так вот, зачем себя ограничивать, когда можно этого не делать?!Чтобы понять есть ли ограничение (и от чего) нужно сперва оценить сколько % кейсов хорошо ложатся на хибер, а сколько % лучше сделать в ХП.
В большинстве проектов процент ХП (объективно востребованых) врядли перевалит за 15%, остальные 85% хибер сделает на ура.
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741628
smackmychi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
For All,

Щитоо такое ХП?
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741640
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
smackmychiFor All,
Щитоо такое ХП?
Ну, Sproc, же.
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741644
smackmychi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

А, понял.

В студенческую пору была курсовая по БД, использовал хранимые процедуры, не понравилось =\
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741646
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
smackmychiВ студенческую пору была курсовая по БД, использовал хранимые процедуры, не понравилось =\
Бывает.
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741656
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конечно, можно совместить и хп и хибер но лучше однотипно, я предпочитаю хп - всё под твоим управлением . а для написания есть куча удобного соФта
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741683
daly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каким образом помогают ХП в работе с Hibernate? Что делают и что возвращают ХП?
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741685
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For AllЧтобы понять есть ли ограничение (и от чего) нужно сперва оценить сколько % кейсов хорошо ложатся на хибер, а сколько % лучше сделать в ХП.
В большинстве проектов процент ХП (объективно востребованых) врядли перевалит за 15%, остальные 85% хибер сделает на ура.

Старый добрый 80-20 :-)
Проблема в том, что они превращаются в 20-80 ;-)
Еще раз возможности HQL и Hibernate намного меньше чем у SQL.
В любом случае придется писать DAO слой.
Т.е. "конвертирование"/"маппирование" из ОМД в РМД.
Так зачем нужен ORM, если все равно объекты для работы с БД дальше DAO не идут?!
Понятно в связке ОМД <-> DAO <-> РМД хочется сделать универсальный слой DAO (ORM), но чаще всего это приводит
ОМД <-> DAO <-> ORM <-> ХП <-> РМД.
Т.е. добавляются два лишних слоя, ради "универсальности". :-)
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741708
smackmychi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul,

Как говорил один мой доежистый преподаватель:"Программа должна делать только то, что должна делать"
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741721
For All
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulFor AllЧтобы понять есть ли ограничение (и от чего) нужно сперва оценить сколько % кейсов хорошо ложатся на хибер, а сколько % лучше сделать в ХП.
В большинстве проектов процент ХП (объективно востребованых) врядли перевалит за 15%, остальные 85% хибер сделает на ура.Старый добрый 80-20 :-)
...
Понятно в связке ОМД <-> DAO <-> РМД хочется сделать универсальный слой DAO (ORM), но чаще всего это приводит
ОМД <-> DAO <-> ORM <-> ХП <-> РМД.15% (ну пусть 20) - это НЕ чаще, а как раз наоборот - достаточно редкий случайmad_nazgulЕще раз возможности HQL и Hibernate намного меньше чем у SQL.С этим никто не спорит. Предлагается обратить внимание насколько часто эти расширенные возможности (свех тех, что даёт Hibernate) реально востребованы.mad_nazgulТак зачем нужен ORM, если все равно объекты для работы с БД дальше DAO не идут?!Это также и бизнес объекты, они нужны в бизнес логике.
Делать две отдельные модели (одну для DAO, а другую для логики) - не рационально.
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741735
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dalyКаким образом помогают ХП в работе с Hibernate? Что делают и что возвращают ХП?
я б так не говорил.
это отдельные логики.
хп могут делать всё, а возврашают набор/наборы записей, могут и не возвращать.
это как простав фунция - ты ей параметры, она тебе результат.
а могут они всёёёёё, в mssql даже очень и очень много, быстрее и проще.
в mysql несколько меньше, но тоже многое.
одно из преимуществ - полная (ну на 99.9999% ) защита от инъекций.
эта 0,00001% не правильное использование одной классной особенности....
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741739
smackmychi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,

А если в проекте необходимо реализовать возможность подключения базы SQLite?
ХП отсутствуют
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741783
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For AllЭто также и бизнес объекты, они нужны в бизнес логике.
Делать две отдельные модели (одну для DAO, а другую для логики) - не рационально.

Так их все равно делают!
Потому что РМД - это модель данных, над которой может быть реализовано несколько ОМД (Бизнес-логики)
От простейших CRUD, до BW.
Если приложение просто показать табличку и дать возможность отредактировать, то да ORM попадает 100%.
Как только нужно реализовать что-то более сложное, так сразу ORM становиться такими гирями, что для работы с ORM приходится обкладывать ее кучей костылей в виде ХП.
Это приводит к тому, что часть БЛ переходит в СУБД.
И тут происходит,то о чем говорят здесь. Проще бывает реализовать БЛ в виде ХП, чем пытаться сделать ее ч/з ORM.
Т.е. все больше и больше "кусков" БЛ идет в СУБД и возникает вопрос зачем нам Java, когда и ОМД и РМД реализованы в СУБД?!
Пример такого подхода Oracle. В нем можно писать двухуровневые трехуровневые приложения. :-)
Поэтому ORM - зло!
ORM - дает ложную "простоту" работы с БД.

P.S. ХП - зло ;-)
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38741843
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
smackmychiвадя,

А если в проекте необходимо реализовать возможность подключения базы SQLite?
ХП отсутствуют

тут всё заключено в задаче, в тех проектах, что у меня, sqlite просто не катит, поэтому у меня нет такой проблемы
...
Рейтинг: 0 / 0
Как использовать SQL в проектах?
    #38742271
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый "дубовый и надежный" вариант - действительно, DAO на JdbcTemplate (или другой удобной обертке) плюс тесты на все методы DAO.
Дальше уже возможны варианты. При наличии "старой и корявой базы" может иметь смысл наличие слоя хранимок, выдающих/обновляющих данные в приличном формате. Главное, чтобы в них не было бизнес-логики.

Плюсы - быстродействие, изоляция приложения от структуры базы. Минусы - больше букв в целом, разработчикам будут нужны отдельные базы, нужно придумывать схемы версионного накатывания хранимок, не всегда загружаемые данные укладываются в плоскую структуру возвращаемых параметров ХП. Ах да, еще тесты на DAO все равно придется писать :).
...
Рейтинг: 0 / 0
18 сообщений из 43, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Как использовать SQL в проектах?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]