Question

Je ne sais pas si cela existe encore ou non, alors je me suis dit que je ferais appel à la sagesse des autres ..

Je me demandais s'il existe des bibliothèques Java pouvant être utilisées pour valider la syntaxe d'une requête SQL. Je sais qu'il existe de nombreux écarts par rapport à la spécification SQL commune. Par conséquent, il ne fonctionnerait probablement que contre SQL: 2006, mais cela suffirait certainement.

Mon objectif est de l'utiliser à des fins de test unitaire sans avoir à tenter l'exécution contre la base de données. Je sais que son utilisation est limitée, mais ce serait quand même utile.

Merci!

Était-ce utile?

La solution

Je ne pense pas qu'il existe de telles bibliothèques. La syntaxe SQL a trop de dérivés.

Une solution possible consisterait à utiliser des parties d’un SGBD Java purement open source, telles que SmallSQL . Dans ce projet, vous pouvez créer une instance de SQLParser . Les références nécessaires à la connexion peuvent être supprimées très facilement.

Autres conseils

Peut-être pouvez-vous utiliser Antlr, il contient un certain nombre de grammaires SQL et une bibliothèque Java , ainsi que des plugins pour divers IDE Java.

Ou bien, utilisez l’analyseur d’utilitaires SQL open source tels que SQuirreL SQL Client .

l'analyseur SQL général peut exécuter vérification de la syntaxe SQL hors connexion . Bases de données prises en charge: Oracle, DB2, MySQL, SQL Server, Teradata et PostgreSQL.

Essayez analyseur JSQL .

En plus de la validation, vous obtenez une représentation significative de la requête.
Cela vous permet, par exemple, de n'accepter que "certains" commandes; manipuler
la requête, " prettify " elle, etc.

Vous pourrez peut-être extraire le code d'analyse de HSQL , qui est java et open source.

Apache Derby est une base de données SQL open source entièrement implémentée en Java et disponible sous la href = "http://db.apache.org/derby/license.html" rel = "nofollow noreferrer"> Licence Apache, version 2.0 . Il était auparavant connu sous le nom de IBM Cloudscape .

Vous pouvez essayer de réutiliser le code de org.apache.derby.impl.sql .

Avec JOOQ , vous ne ferez jamais d'erreur dans SQL. Le compilateur Java s’occupera de cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top