Java есть ли IDE / Tool, которые могут извлекать операторы SQL в файл? - PullRequest
1 голос
/ 16 апреля 2010

Привет, есть ли в мире Java какой-либо инструмент, который будет анализировать / читать исходный файл и извлекать операторы SQL в текстовый файл. Это сложная задача, учитывая, что вы можете написать операторы SQL по-разному в исходном коде (например, с помощью знака + или с помощью .append()) или даже условное построение SQL.

Ответы [ 4 ]

2 голосов
/ 16 апреля 2010

Мы думали сделать это. Для этого необходимо:

1) Полный анализатор Java

2) Полный контроль и анализ потока данных, так что вы можете отслеживать, как значения распространяются через код

3) Распознавание вызовов SQL (JDBC), отслеживание потоков данных для SQL-запрос вернуться к их истокам, и символически интерпретировать набор операций вдоль путей потока данных для определения аппаратная операция SQL.

DMS Software Reengineering Toolkit - это универсальный движок для разбора языков. DMS имеет полный интерфейс Java (соответствует условию 1), который вычисляет локальное управление и анализ потока данных в глобальном масштабе (условие 2). DMS настраивается для извлечения свойств кода, поэтому его можно настроить, как нам кажется, до 3. Все еще не тривиальная задача.

Но, увы, запрошенный инструмент еще не доступен.

1 голос
/ 16 апреля 2010

Рассматривали ли вы наличие SQL для подготовленных операторов в файле свойств (или в пакете языковых ресурсов) и читали их оттуда?

1 голос
/ 16 апреля 2010

Не то, чтобы я когда-либо сталкивался. Несколько раз, когда людям приходилось делать что-то подобное, они заканчивали тем, что писали программу для этого, потому что это не совсем то, что вы можете обобщить.

0 голосов
/ 16 апреля 2010

Проверьте www.antlr.org, у них есть грамматики для PL / SQL, MySQL и Java 1.6. Если вы интересуетесь только SQL, возможно, вы можете построить грамматику SQL. Это может быть проще, например, чтение псевдо-SQL из журнала драйвера JDBC / провода / из журнала сервера базы данных даст более согласованный синтаксис.

...