Bitte besuchen Sie die Website. JSqlParser ist ein RDBMS-unabhängiger SQL-Anweisungsparser. Es übersetzt SQL-Anweisungen in eine durchquerbare Hierarchie von Java-Klassen (siehe Beispiele):
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 war die letzte JDK8-kompatible Version. Der aktuelle JSQLParser-5.0 hängt von JDK11 ab und führt API-Breaking-Änderungen für die AST-Besucher ein. Einzelheiten finden Sie im Migrationsleitfaden.
JSqlParser zielt darauf ab, den SQL-Standard sowie alle wichtigen RDBMS zu unterstützen. Fehlende Syntax oder Funktionen können bei Bedarf hinzugefügt werden.
RDBMS | Aussagen |
---|---|
Orakel MS SQL Server und Sybase Postgres MySQL und MariaDB DB2 H2 und HSQLDB und Derby SQLite | SELECT INSERT , UPDATE , UPSERT , MERGE DELETE , TRUNCATE TABLE CREATE ... , ALTER .... , DROP ... WITH ... |
Salesforce SOQL | INCLUDES , EXCLUDES |
JSqlParser kann auch zum Erstellen von SQL-Anweisungen aus Java-Code mit einer Fluent-API verwendet werden (siehe Beispiele).
Wenn Ihnen JSqlParser gefällt, schauen Sie sich bitte die zugehörigen Projekte an:
JSQLFormatter zum hübschen Drucken und Formatieren von SQL-Text
JSQLTranspiler für dialektspezifisches Umschreiben, SQL-Spaltenauflösung und Herkunft
Der allgemeine SQL-Parser sieht ziemlich gut aus, mit erweiterter SQL-Syntax (wie PL/SQL und T-SQL) und Java + .NET-APIs. Das Tool ist kommerziell erhältlich (Lizenz online verfügbar) und kann kostenlos heruntergeladen werden.
Alternativ bietet das doppelt lizenzierte JOOQ einen handgeschriebenen Parser, der viele RDBMS, Übersetzung zwischen Dialekten und SQL-Transformation unterstützt und als JDBC-Proxy für Übersetzungs- und Transformationszwecke verwendet werden kann.
JSqlParser ist doppelt lizenziert unter LGPL V2.1 oder Apache Software License, Version 2.0 .