Существуют какие-нибудь библиотеки Java, которые проверяют синтаксис SQL?[закрыто]

StackOverflow https://stackoverflow.com/questions/141499

  •  02-07-2019
  •  | 
  •  

Вопрос

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

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

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

Спасибо!

Это было полезно?

Решение

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

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

Другие советы

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

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

Общий анализатор SQL могу сделать проверка синтаксиса SQL в автономном режиме.Поддерживаемые базы данных:Oracle, DB2, MySQL, SQL Server, Teradata и PostgreSQL.

Попробуй Анализатор JSQL.

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

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

Дерби Апачей является ли база данных SQL с открытым исходным кодом полностью реализованной на Java и доступной под Лицензия Apache, версия 2.0.Раньше он был известен как IBM Cloudscape.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top