Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск helper-классов для работы с SQL синтаксисом, sql-выражение как удобный объект 
:(
    Опции темы
Maksym
Дата 22.5.2008, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



Ищу какую-нибудь вспомогательную библиотеку, котарая умела бы:
  • распарсивать SQL  в объект
  • объект должен иметь удобные методы редактирования (списка таблиц, полей, сложных условий, порядка сортировки и т.д. и т.п.)
  • генерировать SQL из этого объекта

Идея состоит в том, что есть оптимизированный одним db-гуру SQL. База данных -- Oracle, но никаких сильно специфичных вещей не используется. Все примерно в рамках стандарта.
С этим SQL надо довольно активно работать (не только подставлять значения в условия, но и делать разные довольно сложные манипуляции). Нахардкодить под все варианты строк запросов не представляется возможным (да и разумным). 
Хотелось бы работать с объектами, а ответственность за валидность результирующего SQL возложить на какой-нибудь готовый пакет.

Не сталкивался ли кто-нибудь с такими инструментами? у кого какие идеи?

ЗЫ. Ни о каких ОRM тут речи не идет. Во-первых потому, что все уже разработано без них. Во-вторых, в базе данных хранятся сложные структуры: деревья, сети и т.п. В-третьх, большинство запросов сделано через сложные join, и заточены под производительность.
PM MAIL   Вверх
fixxer
Дата 22.5.2008, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 6
Всего: 27



Погугли на предмет sql4j и zql. Может подойдет.


--------------------
user posted image
PM MAIL ICQ   Вверх
Maksym
Дата 22.5.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



fixxer
Спасибо, интересно и близко к тому что нужно. Чтобы ты посоветовал? Zql, вроде как, выглядит предпочтительнее поскольку использует сторонний (javacc) парсинг...

All
Еще варианты..?
Может у кого-нибудь есть опыт с названными тулами?
PM MAIL   Вверх
Maksym
Дата 22.5.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



После поверхностного рассмотрения вскрылись таки факты:
  • Zql поставляется без исходников. Автор предлагает написать ему и обсудить лицензию и т.п. Можно это сделать, хотя то что моя разработка целиком комерческая очков мне в этих переговорах не добавляет
  • Последний раз Zql обновлялся 7 Aug. 02 -- хотелось бы верить от того, что стабилен и тех немногих кому понадобился -- целиком удовлетворил.. а не от того, что проблемный и никто им не пользовался..
  • SQL4J идет с исходниками.. но дата последнего обновления December 2001, тоже далеко не вчера..

PM MAIL   Вверх
v2v
Дата 22.5.2008, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



sqljep

Добавлено через 47 секунд
Цитата

SQLJEP is a Java API for parsing and evaluating SQL-like expressions. It supports some SQL predicase (is null, like, in, between) and almost all Oracle's and MaxDB's functions.



--------------------
PM   Вверх
Maksym
Дата 22.5.2008, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



v2v
Интересная вещь и полезная, но она только для условных выражений внутри sql. Всё sql выражение целиком она не обрабатывает.
Цитата

SQLJEP is a Java API for parsing and evaluating SQL-like expressions (SQL statements are not supported).

PM MAIL   Вверх
v2v
Дата 22.5.2008, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



open source. может имеет смысл дописать его? 


--------------------
PM   Вверх
Maksym
Дата 22.5.2008, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



v2v
Много дописывать прийдется smile
PM MAIL   Вверх
Platon
Дата 22.5.2008, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



А что поделать? Надо не только потреблять, но и помогать ^_^
PM MAIL ICQ   Вверх
Maksym
Дата 23.5.2008, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



Еще идеи, кроме как самому писать, есть у кого нибудь?
PM MAIL   Вверх
Andrey1
Дата 23.5.2008, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 1
Всего: 5



Цитата(Maksym @  22.5.2008,  15:10 Найти цитируемый пост)
...распарсивать SQL  в объект


Да, тоже давно ищу такую либу. Концептуально этот подход очень даже правильный.... smile

Цитата(Maksym @  23.5.2008,  15:29 Найти цитируемый пост)
Еще идеи, кроме как самому писать, есть у кого нибудь? 

Так что если решишься "на дописать самому" - готов пообсуждать с перспективой включиться в разработку smile

Правда для меня чуть больше важнее работа с JPQL (JPA), чем с чистым SQL.

Это сообщение отредактировал(а) Andrey1 - 23.5.2008, 15:51


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
Maksym
Дата 23.5.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



Почитал обсуждения на буржуйских форумах -- все сводится к тому, чтобы брать JavaCC и самому описывать SQL синтаксис. Никак не могу найти, чтобы кто-нибудь это уже сделал..
PM MAIL   Вверх
ivg
Дата 23.5.2008, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 33
Всего: 81



PM MAIL   Вверх
Andrey1
Дата 23.5.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: 1
Всего: 5



Цитата(Maksym @  23.5.2008,  16:22 Найти цитируемый пост)
Почитал обсуждения на буржуйских форумах -- все сводится к тому, чтобы брать JavaCC и самому описывать SQL синтаксис. Никак не могу найти, чтобы кто-нибудь это уже сделал.. 

Да, это стандартный путь. Но для SQL - я думаю уже есть готовые грамматики smile. Они должны быть в тех недоделанных проектах...
Думаю, для JPQL тоже должны быть готовые грамматики для JavaCC в JPA реализациях с исходниками...

То, за что я точно готов взяться - это за интеграцию какого-нибудь слабо типизированного скриптового Java-based языка, (на примете JavaBeans и JavaScript) с NetBeans и JPA: чтобы всю обработку данных из базы можно было  бы вести на этом языке в терминах Entity объектов и JPQL. Чтобы про SQL можно было забыть smile...

Это сообщение отредактировал(а) Andrey1 - 23.5.2008, 17:54


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
Maksym
Дата 23.5.2008, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



Цитата(ivg @  23.5.2008,  16:52 Найти цитируемый пост)
это наверно видели? 

Ага, и это уже кое-что smile
Для меня неожиданность, что не оказалось готового "коробочного" решения, так чтоб прочесть manual, посмотреть api, и начать пользоваться.. эхх мечты мечты

Цитата(Andrey1 @  23.5.2008,  16:53 Найти цитируемый пост)
Чтобы про SQL можно было забыть smile...

В моем случае про sql забывать нельзя  smile  Все очень sql-завязано и sql-зависимо smile

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0920 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.