Por favor visite o site. JSqlParser é um analisador de instruções SQL independente de RDBMS. Ele traduz instruções SQL em uma hierarquia percorrível de classes Java (consulte Exemplos):
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 foi a última versão compatível com JDK8. O recente JSQLParser-5.0 depende do JDK11 e introduz alterações importantes na API para os visitantes do AST. Consulte o Guia de migração para obter detalhes.
JSqlParser visa oferecer suporte ao padrão SQL, bem como a todos os principais RDBMS. Qualquer sintaxe ou recurso ausente pode ser adicionado sob demanda.
RDBMS | Declarações |
---|---|
Oráculo MS SQL Server e Sybase Postgres MySQL e MariaDB DB2 H2 e HSQLDB e Derby SQLite | SELECT INSERT , UPDATE , UPSERT , MERGE DELETE , TRUNCATE TABLE CREATE ... , ALTER .... , DROP ... WITH ... |
SOQL do Salesforce | INCLUDES , EXCLUDES |
JSqlParser também pode ser usado para criar instruções SQL a partir de código Java com uma API fluente (consulte Exemplos).
Se você gosta de JSqlParser, confira seus projetos relacionados:
JSQLFormatter para impressão e formatação bonitas de texto SQL
JSQLTranspiler para reescrita específica de dialeto, resolução de coluna SQL e linhagem
O General SQL Parser parece muito bom, com sintaxe SQL estendida (como PL/SQL e T-SQL) e APIs java + .NET. A ferramenta é comercial (licença disponível online), com opção de download gratuito.
Alternativamente, o JOOQ com licença dupla fornece um analisador escrito à mão que suporta muitos RDBMS, tradução entre dialetos, transformação SQL, pode ser usado como um proxy JDBC para fins de tradução e transformação.
JSqlParser tem licença dupla sob LGPL V2.1 ou Apache Software License, versão 2.0 .