Veuillez visiter le site Web. JSqlParser est un analyseur d'instructions SQL indépendant des SGBDR. Il traduit les instructions SQL en une hiérarchie traversable de classes Java (voir Exemples) :
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 était la dernière version compatible JDK8. Le récent JSQLParser-5.0 dépend du JDK11 et introduit des modifications importantes de l'API pour les visiteurs AST. Veuillez consulter le Guide de migration pour plus de détails.
JSqlParser vise à prendre en charge le standard SQL ainsi que tous les principaux SGBDR. Toute syntaxe ou fonctionnalité manquante peut être ajoutée sur demande.
SGBDR | Déclarations |
---|---|
Oracle MS SQL Server et Sybase Postgres MySQL et MariaDB DB2 H2 et HSQLDB et Derby SQLite | SELECT INSERT , UPDATE , UPSERT , MERGE DELETE , TRUNCATE TABLE CREATE ... , ALTER .... , DROP ... WITH ... |
SalesforceSOQL | INCLUDES , EXCLUDES |
JSqlParser peut également être utilisé pour créer des instructions SQL à partir de code Java avec une API fluide (voir Exemples).
Si vous aimez JSqlParser, veuillez consulter ses projets associés :
JSQLFormatter pour une jolie impression et mise en forme du texte SQL
JSQLTranspiler pour la réécriture spécifique au dialecte, la résolution de colonnes SQL et le lignage
L'analyseur SQL général a l'air plutôt bien, avec une syntaxe SQL étendue (comme PL/SQL et T-SQL) et des API Java + .NET. L'outil est commercial (licence disponible en ligne), avec une option de téléchargement gratuit.
Alternativement, JOOQ à double licence fournit un analyseur écrit à la main prenant en charge de nombreux SGBDR, la traduction entre dialectes, la transformation SQL, et peut être utilisé comme proxy JDBC à des fins de traduction et de transformation.
JSqlParser est sous double licence LGPL V2.1 ou Apache Software License, version 2.0 .