|
|
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
ORM - для работы с данными и бизнес-логики SQL, сохраненные процедуры - для аналитики триггеры - не знаю, нужны ли сейчас, разве что для оперативного вычисления агрегированных значений Естественно, четкого разделения нет, всё определяется конкретной задачей. Например, бизнес-логика может активно использовать аналитические данные. в то же время для аналитики могут применяться специальные инструменты типа OBI, где sql требуется только на этапе проектирования репозитория тяжкое наследие в виде легаси года и супер изобретений предшественников. Бывает, попадаются базы с бизнес-локикой в километровых ХП, а бывает - "объектные" базы, типа того, что сделано в 1с. Тут ни ORM, ни SQL не помогут, только встроенный фреймворк и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 11:51 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulКак только идет расхождение и из данных могут извлекаться различные объекты, то сразу ORM плавно перетекает в программирование ХП.Hibernate такое тоже умеет делать, не обязательно ХП писать. Даже если никак без ХП не обойтись, то это ещё не повод выкинуть Hibernate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 11:56 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
For Allmad_nazgulКак только идет расхождение и из данных могут извлекаться различные объекты, то сразу ORM плавно перетекает в программирование ХП.Hibernate такое тоже умеет делать, не обязательно ХП писать. Даже если никак без ХП не обойтись, то это ещё не повод выкинуть Hibernate. Повод. Зачем нужен лишний слой, если можно без него?! Возможности HQL намного меньше возможностей SQL. Поэтому, то что можно сделать запросом SQL, в Hibernate приходиться писать ч/з ХП. Так вот, зачем себя ограничивать, когда можно этого не делать?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 12:12 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulFor Allпропущено... Hibernate такое тоже умеет делать, не обязательно ХП писать. Даже если никак без ХП не обойтись, то это ещё не повод выкинуть Hibernate. Повод. Зачем нужен лишний слой, если можно без него?! Возможности HQL намного меньше возможностей SQL. Поэтому, то что можно сделать запросом SQL, в Hibernate приходиться писать ч/з ХП. Так вот, зачем себя ограничивать, когда можно этого не делать?!Чтобы понять есть ли ограничение (и от чего) нужно сперва оценить сколько % кейсов хорошо ложатся на хибер, а сколько % лучше сделать в ХП. В большинстве проектов процент ХП (объективно востребованых) врядли перевалит за 15%, остальные 85% хибер сделает на ура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 12:47 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
For All, Щитоо такое ХП? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 12:51 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
smackmychiFor All, Щитоо такое ХП? Ну, Sproc, же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 12:56 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, А, понял. В студенческую пору была курсовая по БД, использовал хранимые процедуры, не понравилось =\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 12:59 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
smackmychiВ студенческую пору была курсовая по БД, использовал хранимые процедуры, не понравилось =\ Бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 13:00 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
конечно, можно совместить и хп и хибер но лучше однотипно, я предпочитаю хп - всё под твоим управлением . а для написания есть куча удобного соФта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 13:03 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
Каким образом помогают ХП в работе с Hibernate? Что делают и что возвращают ХП? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 13:21 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
For AllЧтобы понять есть ли ограничение (и от чего) нужно сперва оценить сколько % кейсов хорошо ложатся на хибер, а сколько % лучше сделать в ХП. В большинстве проектов процент ХП (объективно востребованых) врядли перевалит за 15%, остальные 85% хибер сделает на ура. Старый добрый 80-20 :-) Проблема в том, что они превращаются в 20-80 ;-) Еще раз возможности HQL и Hibernate намного меньше чем у SQL. В любом случае придется писать DAO слой. Т.е. "конвертирование"/"маппирование" из ОМД в РМД. Так зачем нужен ORM, если все равно объекты для работы с БД дальше DAO не идут?! Понятно в связке ОМД <-> DAO <-> РМД хочется сделать универсальный слой DAO (ORM), но чаще всего это приводит ОМД <-> DAO <-> ORM <-> ХП <-> РМД. Т.е. добавляются два лишних слоя, ради "универсальности". :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 13:21 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Как говорил один мой доежистый преподаватель:"Программа должна делать только то, что должна делать" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 13:34 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
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, а другую для логики) - не рационально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 13:43 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
dalyКаким образом помогают ХП в работе с Hibernate? Что делают и что возвращают ХП? я б так не говорил. это отдельные логики. хп могут делать всё, а возврашают набор/наборы записей, могут и не возвращать. это как простав фунция - ты ей параметры, она тебе результат. а могут они всёёёёё, в mssql даже очень и очень много, быстрее и проще. в mysql несколько меньше, но тоже многое. одно из преимуществ - полная (ну на 99.9999% ) защита от инъекций. эта 0,00001% не правильное использование одной классной особенности.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 13:52 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
вадя, А если в проекте необходимо реализовать возможность подключения базы SQLite? ХП отсутствуют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 13:55 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
For AllЭто также и бизнес объекты, они нужны в бизнес логике. Делать две отдельные модели (одну для DAO, а другую для логики) - не рационально. Так их все равно делают! Потому что РМД - это модель данных, над которой может быть реализовано несколько ОМД (Бизнес-логики) От простейших CRUD, до BW. Если приложение просто показать табличку и дать возможность отредактировать, то да ORM попадает 100%. Как только нужно реализовать что-то более сложное, так сразу ORM становиться такими гирями, что для работы с ORM приходится обкладывать ее кучей костылей в виде ХП. Это приводит к тому, что часть БЛ переходит в СУБД. И тут происходит,то о чем говорят здесь. Проще бывает реализовать БЛ в виде ХП, чем пытаться сделать ее ч/з ORM. Т.е. все больше и больше "кусков" БЛ идет в СУБД и возникает вопрос зачем нам Java, когда и ОМД и РМД реализованы в СУБД?! Пример такого подхода Oracle. В нем можно писать двухуровневые трехуровневые приложения. :-) Поэтому ORM - зло! ORM - дает ложную "простоту" работы с БД. P.S. ХП - зло ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 14:38 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
smackmychiвадя, А если в проекте необходимо реализовать возможность подключения базы SQLite? ХП отсутствуют тут всё заключено в задаче, в тех проектах, что у меня, sqlite просто не катит, поэтому у меня нет такой проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 15:20 |
|
||
|
Как использовать SQL в проектах?
|
|||
|---|---|---|---|
|
#18+
Самый "дубовый и надежный" вариант - действительно, DAO на JdbcTemplate (или другой удобной обертке) плюс тесты на все методы DAO. Дальше уже возможны варианты. При наличии "старой и корявой базы" может иметь смысл наличие слоя хранимок, выдающих/обновляющих данные в приличном формате. Главное, чтобы в них не было бизнес-логики. Плюсы - быстродействие, изоляция приложения от структуры базы. Минусы - больше букв в целом, разработчикам будут нужны отдельные базы, нужно придумывать схемы версионного накатывания хранимок, не всегда загружаемые данные укладываются в плоскую структуру возвращаемых параметров ХП. Ах да, еще тесты на DAO все равно придется писать :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 23:02 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38741739&tid=2126627]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 517ms |

| 0 / 0 |
