Какие-либо Java-библиотеки, которые проверяют синтаксис SQL?

Я не уверен, что это даже существует или нет, поэтому я решил, что я буду использовать мудрость других.

Мне было интересно, есть ли там какие-либо библиотеки Java, которые можно использовать для проверки синтаксиса SQL-запроса. Я знаю, что существует множество отклонений от общей спецификации SQL, поэтому она, вероятно, будет работать только с чем-то вроде SQL: 2006, но этого было бы достаточно.

Моя цель - использовать это для тестирования модулей без необходимости выполнять выполнение против БД. Я знаю это ограниченного использования, но это все равно будет полезно.

Спасибо!

Ответы

Ответ 1

Я не думаю, что есть такие библиотеки. Синтаксис SQL имеет слишком много производных.

Возможным решением было бы использовать части чистой Java-базы данных с открытым исходным кодом, такие как SmallSQL. В этом проекте вы можете создать экземпляр SQLParser. Необходимые ссылки на соединение можно легко удалить.

Ответ 2

Возможно, вы можете использовать Antlr, он имеет число грамматики SQL и библиотека Java, а также плагины для различных Java IDE.

Или, как рекомендуется, используйте анализатор утилит SQL с открытым исходным кодом, например SQuirreL SQL Client.

Ответ 5

Попробуйте парсер JSQL.

В дополнение к проверке вы получаете значимое представление запроса.
Это позволяет, например, принимать только "определенные" команды; манипулировать
запрос, "префикс" и т.д.

Ответ 6

С JOOQ вы никогда не ошибетесь в SQL. Компилятор Java позаботится об этом.

Ответ 7

Вы можете извлечь код анализа из HSQL, который является java и открытым исходным кодом.

Ответ 8

Apache Derby - это база данных SQL с открытым исходным кодом, полностью реализованная на Java и доступная под Apache License, версия 2.0. Ранее он был известен как IBM Cloudscape.

Вы можете попытаться повторно использовать код разбора с org.apache.derby.impl.sql.