example - ¿Hay bibliotecas de Java que validen la sintaxis de SQL?
jdbc java (8)
No estoy seguro de si esto existe o no, así que pensé que podría aprovechar la sabiduría de los demás.
Me preguntaba si hay bibliotecas de Java disponibles que puedan usarse para validar la sintaxis de una consulta SQL. Sé que hay muchas desviaciones de la especificación SQL común, por lo que probablemente solo funcione en contra de algo como SQL: 2006, pero eso sería suficiente.
Mi objetivo es usar esto para fines de pruebas unitarias sin necesidad de intentar la ejecución contra el DB. Sé que es de uso limitado, pero aún sería útil.
¡Gracias!
Es posible que pueda extraer el código de análisis de HSQL , que es Java y de código abierto.
Apache Derby es una base de datos SQL de código abierto implementada completamente en Java y disponible bajo la Licencia Apache, Versión 2.0 . Anteriormente se lo conocía como IBM Cloudscape .
Puede intentar reutilizar su código de análisis de org.apache.derby.impl.sql
.
No creo que haya tales bibliotecas. La sintaxis SQL tiene demasiados derivados.
Una posible solución sería usar partes de un código abierto Java DBMS puro como SmallSQL . En este proyecto, puede crear una instancia de SQLParser . Las referencias necesarias a la conexión se pueden eliminar muy fácilmente.
General SQL Parser puede hacer una verificación de sintaxis de SQL sin conexión . Bases de datos compatibles: Oracle, DB2, MySQL, SQL Server, Teradata y PostgreSQL.
Con JOOQ nunca cometerá un error en SQL. El compilador de Java se encargará de eso.
Prueba el analizador JSQL .
Además de validar, obtienes una representación significativa de la consulta.
Esto le permite, por ejemplo, aceptar solo "ciertos" comandos; manipular
la consulta, "embellecerla", etc.
Quizás pueda usar Antlr, tiene varias gramáticas SQL y una biblioteca Java , así como complementos para varios IDEs de Java.
O, como se recomienda, utilice el analizador de las utilidades SQL de código abierto, como SQuirreL SQL Client .
SQL4J es un analizador SQL escrito en Java.