Por favor visite el sitio web. JSqlParser es un analizador de declaraciones SQL independiente de RDBMS. Traduce sentencias SQL en una jerarquía transitable de clases Java (ver Ejemplos):
SELECT 1 FROM dual WHERE a = b
SQL Text
└─Statements: statement.select.PlainSelect
├─selectItems: statement.select.SelectItem
│ └─LongValue: 1
├─Table: dual
└─where: expression.operators.relational.EqualsTo
├─Column: a
└─Column: b
String sqlStr = "select 1 from dual where a=b" ;
PlainSelect select = ( PlainSelect ) CCJSqlParserUtil . parse ( sqlStr );
SelectItem selectItem =
select . getSelectItems (). get ( 0 );
Assertions . assertEquals (
new LongValue ( 1 )
, selectItem . getExpression ());
Table table = ( Table ) select . getFromItem ();
Assertions . assertEquals ( "dual" , table . getName ());
EqualsTo equalsTo = ( EqualsTo ) select . getWhere ();
Column a = ( Column ) equalsTo . getLeftExpression ();
Column b = ( Column ) equalsTo . getRightExpression ();
Assertions . assertEquals ( "a" , a . getColumnName ());
Assertions . assertEquals ( "b" , b . getColumnName ());
}
JSQLParser-4.9 fue la última versión compatible con JDK8. El reciente JSQLParser-5.0 depende de JDK11 e introduce cambios importantes en la API para los visitantes de AST. Consulte la Guía de migración para obtener más detalles.
JSqlParser tiene como objetivo admitir el estándar SQL, así como todos los RDBMS principales. Cualquier sintaxis o característica faltante se puede agregar a pedido.
RDBMS | Declaraciones |
---|---|
Oráculo Servidor MS SQL y Sybase Postgres MySQL y MariaDB DB2 H2 y HSQLDB y Derby SQLite | SELECT INSERT , UPDATE , UPSERT , MERGE DELETE , TRUNCATE TABLE CREATE ... , ALTER .... , DROP ... WITH ... |
SOQL de Salesforce | INCLUDES , EXCLUDES |
JSqlParser también se puede utilizar para crear declaraciones SQL a partir de código Java con una API fluida (consulte Ejemplos).
Si le gusta JSqlParser, consulte sus proyectos relacionados:
JSQLFormatter para imprimir y formatear texto SQL de forma bonita
JSQLTranspiler para reescritura específica de dialectos, resolución de columnas SQL y linaje
General SQL Parser se ve bastante bien, con sintaxis SQL extendida (como PL/SQL y T-SQL) y API java + .NET. La herramienta es comercial (licencia disponible en línea), con opción de descarga gratuita.
Alternativamente, JOOQ con doble licencia proporciona un analizador escrito a mano que admite una gran cantidad de RDBMS, traducción entre dialectos, transformación SQL y se puede utilizar como proxy JDBC para fines de traducción y transformación.
JSqlParser tiene doble licencia LGPL V2.1 o licencia de software Apache, versión 2.0 .