|
|
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
Как лучше сделать динамический построитель sql запросов Дается шаблон Код: java 1. Далее могу добавлять условия, сортировать и на выходе получать рабочий sql запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 16:44 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
-=Koba=-Как лучше сделать динамический построитель sql запросов Дается шаблон Код: java 1. Далее могу добавлять условия, сортировать и на выходе получать рабочий sql запрос Лучше не делать. Если используете ORM (Entity), то лучше возьмите Spring-data-jpa. В нем есть "динамический построитель запросов" (правда не в том виде, как вы себе представляете), но для большинства CRUD-запрсов хватает. Если используете "голый JDBC", то поищите на githab, периодично у кого-то возникает желание написать универсальный построитель запросов. P.S. CriteriaAPI, QueryDSL пользоваться не рекомендую. Если для чего-то не хватает простых методов spring-data-jpa, то лучше не писать "универсально", а написать каждый запрос отдельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 06:30 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
mad_nazgul-=Koba=-Как лучше сделать динамический построитель sql запросов Дается шаблон Код: java 1. Далее могу добавлять условия, сортировать и на выходе получать рабочий sql запрос Лучше не делать. Если используете ORM (Entity), то лучше возьмите Spring-data-jpa. В нем есть "динамический построитель запросов" (правда не в том виде, как вы себе представляете), но для большинства CRUD-запрсов хватает. Если используете "голый JDBC", то поищите на githab, периодично у кого-то возникает желание написать универсальный построитель запросов. P.S. CriteriaAPI, QueryDSL пользоваться не рекомендую. Если для чего-то не хватает простых методов spring-data-jpa, то лучше не писать "универсально", а написать каждый запрос отдельно. Не согласен, так все в конечном итоге скатывается в DAO. Для тру Repository нужен Specification. JPA Criteria API слишком многословный для этих дел, а собственно dynamic jpql - вот как раз он и может быть одним из вариантов Specification, там строки, ну а что поделать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 10:35 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
mad_nazgulP.S. CriteriaAPI, QueryDSL пользоваться не рекомендую. Если для чего-то не хватает простых методов spring-data-jpa, то лучше не писать "универсально", а написать каждый запрос отдельно. В большинстве случаев это действительно так. Но бывают и исключения. Например поиск сущностей по паре десятков опциональных параметров. SQL с опциональным фильтром написать-то можно. Но поддерживать такого монстра будет не реально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 10:44 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
-=Koba=-Как лучше сделать динамический построитель sql запросов Дается шаблон Код: java 1. Далее могу добавлять условия, сортировать и на выходе получать рабочий sql запрос Щас в меня полетят помидоры))) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 12:59 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
-=Koba=-Далее могу добавлять условия, сортировать и на выходе получать рабочий sql запрос таблица редко бывает одна. А как только начинаем добавлять несколько таблиц и JOIN, то приплыли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 13:21 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
Petro123-=Koba=-Далее могу добавлять условия, сортировать и на выходе получать рабочий sql запрос таблица редко бывает одна. А как только начинаем добавлять несколько таблиц и JOIN, то приплыли. Ну и что? Получим метаданные из prepredStatement (названия и типы колонок) и сгенерим для них фильтры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 13:59 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
dimonz80и сгенерим для них фильтры а сам запрос (JOIN) как генерить? Левый и правый JOIN? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 14:12 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
Petro123dimonz80и сгенерим для них фильтры а сам запрос (JOIN) как генерить? Левый и правый JOIN? какие джоины ещ егенерить? connection.prepareStatement("select * from t1 inner join t2 on t1.id = t2.t1_id left outer join t3 on t3.id = t1.t3_id").getMetaData md.getColumnClassName getColumnCount getColumnDisplaySize getColumnLabel getColumnName getColumnType getColumnTypeName это все что нам надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 14:26 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
dimonz80Щас в меня полетят помидоры))) Хорошо, что не ботинки. Автор темы допустил типичную ошибку: хочет запрограммировать то, что не надо программировать. Вы допускаете другую типичную ошибку: хотите сделать плохо то, что уже сделано хорошо. Раз уж вы влезли сюда с Python-ом, то вам надо бы знать, что для Python-а есть библиотека SQLAlchemy, имеющая возможности построения запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 14:31 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
dimonz80это все что нам надо Я не знаю что надо ТС. Я эти запросы каждый день пишу. И слабо представляю, кто это автоматизирует)))). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 14:43 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
Partisan Mdimonz80Щас в меня полетят помидоры))) Хорошо, что не ботинки. Автор темы допустил типичную ошибку: хочет запрограммировать то, что не надо программировать. Все эти SQL BlahBlahBlah Developer's смотрят сейчас с недоумением Вы допускаете другую типичную ошибку: хотите сделать плохо то, что уже сделано хорошо. Раз уж вы влезли сюда с Python-ом, то вам надо бы знать, что для Python-а есть библиотека SQLAlchemy, имеющая возможности построения запросов. Python? Какой python?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 14:46 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
Petro123dimonz80это все что нам надо Я не знаю что надо ТС. Я эти запросы каждый день пишу. И слабо представляю, кто это автоматизирует)))). Мне думается что автор хочет как на картинке тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 14:50 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
dimonz80Мне думается что автор хочет фиг знает. Делать нечего думать за автора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:36 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
очкующим по поводуинъекций, рекомендую применять хранимые процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:22 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
вадяочкующим по поводуинъекций, рекомендую применять хранимые процедуры. ХП для слабаков! connection.setReadOnly(true) - выбор профессионалов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 16:55 |
|
||
|
Sql builder
|
|||
|---|---|---|---|
|
#18+
Blazkowiczmad_nazgulP.S. CriteriaAPI, QueryDSL пользоваться не рекомендую. Если для чего-то не хватает простых методов spring-data-jpa, то лучше не писать "универсально", а написать каждый запрос отдельно. В большинстве случаев это действительно так. Но бывают и исключения. Например поиск сущностей по паре десятков опциональных параметров. SQL с опциональным фильтром написать-то можно. Но поддерживать такого монстра будет не реально. Если по одной сущности (и только по ее полям), то вполне хватит 1-го "универсального" запроса. Даже "построитель" не нужен. :-) Но по моему мнению "универсал это тот кто делает все одинаково плохо". Потом "оптимизировать" универсальный запрос это еще то приключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2016, 06:42 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39297258&tid=2123784]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 426ms |

| 0 / 0 |
