| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Поиск helper-классов для работы с SQL синтаксисом |
| Автор: Maksym 22.5.2008, 15:10 |
Ищу какую-нибудь вспомогательную библиотеку, котарая умела бы:
Идея состоит в том, что есть оптимизированный одним db-гуру SQL. База данных -- Oracle, но никаких сильно специфичных вещей не используется. Все примерно в рамках стандарта. С этим SQL надо довольно активно работать (не только подставлять значения в условия, но и делать разные довольно сложные манипуляции). Нахардкодить под все варианты строк запросов не представляется возможным (да и разумным). Хотелось бы работать с объектами, а ответственность за валидность результирующего SQL возложить на какой-нибудь готовый пакет. Не сталкивался ли кто-нибудь с такими инструментами? у кого какие идеи? ЗЫ. Ни о каких ОRM тут речи не идет. Во-первых потому, что все уже разработано без них. Во-вторых, в базе данных хранятся сложные структуры: деревья, сети и т.п. В-третьх, большинство запросов сделано через сложные join, и заточены под производительность. |
| Автор: fixxer 22.5.2008, 15:39 |
| Погугли на предмет sql4j и zql. Может подойдет. |
| Автор: Maksym 22.5.2008, 16:00 |
| fixxer Спасибо, интересно и близко к тому что нужно. Чтобы ты посоветовал? http://www.experlog.com/gibello/zql/, вроде как, выглядит предпочтительнее поскольку использует сторонний (https://javacc.dev.java.net/) парсинг... All Еще варианты..? Может у кого-нибудь есть опыт с названными тулами? |
| Автор: Maksym 22.5.2008, 16:33 |
После поверхностного рассмотрения вскрылись таки факты:
|
| Автор: v2v 22.5.2008, 17:22 | ||
| http://sqljep.sourceforge.net/ Добавлено через 47 секунд
|
| Автор: Maksym 22.5.2008, 17:49 | ||
| v2v Интересная вещь и полезная, но она только для условных выражений внутри sql. Всё sql выражение целиком она не обрабатывает.
|
| Автор: v2v 22.5.2008, 18:17 |
| open source. может имеет смысл дописать его? |
| Автор: Maksym 22.5.2008, 18:22 |
| v2v Много дописывать прийдется |
| Автор: Platon 22.5.2008, 18:52 |
| А что поделать? Надо не только потреблять, но и помогать ^_^ |
| Автор: Maksym 23.5.2008, 15:29 |
| Еще идеи, кроме как самому писать, есть у кого нибудь? |
| Автор: Andrey1 23.5.2008, 15:37 |
Да, тоже давно ищу такую либу. Концептуально этот подход очень даже правильный.... Так что если решишься "на дописать самому" - готов пообсуждать с перспективой включиться в разработку Правда для меня чуть больше важнее работа с JPQL (JPA), чем с чистым SQL. |
| Автор: Maksym 23.5.2008, 16:22 |
| Почитал обсуждения на буржуйских форумах -- все сводится к тому, чтобы брать JavaCC и самому описывать SQL синтаксис. Никак не могу найти, чтобы кто-нибудь это уже сделал.. |
| Автор: ivg 23.5.2008, 17:52 |
| https://javacc.dev.java.net/files/documents/17/38413/PlSql.jj? |
| Автор: Maksym 23.5.2008, 18:05 |
Ага, и это уже кое-что Для меня неожиданность, что не оказалось готового "коробочного" решения, так чтоб прочесть manual, посмотреть api, и начать пользоваться.. эхх мечты мечты В моем случае про sql забывать нельзя |
| Автор: ivg 23.5.2008, 18:27 | ||
А нужно ли такое полнофункциональное решение? Большинство запросов известно на этапе компиляции, ну или по крайней мере структура запроса и постоянная часть имеются. Может гораздо проще структурировать запросы по типам, для каждого типа написать шаблон, а подставлять в рантайме? Может поэтому и нет такого готового решения. |
| Автор: Maksym 23.5.2008, 18:37 | ||
Но формировать эту структуру из строк -- небезопасно. Намного удобнее иметь объект-оболочку, который возьмет на себя всю рутинную работу. Для проектов с досточно "прямой" архитектурой таблиц и данных используют ORM Для проектов типа моего текущего -- прикручивают очередное доморощеное решение и не делятся |
| Автор: Stampede 23.5.2008, 20:06 |
Вот такая идея щас пришла в голову. Очень даже возможно, что есть готовые стандарты для записи SQL запросов в виде XML. Ну и тогда с этой штукой можно будет работать программно, через DOM. Не то чтоб сильно фонтан, но все же лучше, чем конкатенацией ЗЫ. Только если такая вещь и существует, найти ее будет непросто, По запросу sql+xml вылазит в основном инфа о работе с XML данными в базе. |