Silakan kunjungi Situs Web. JSqlParser adalah parser pernyataan SQL agnostik RDBMS. Ini menerjemahkan pernyataan SQL ke dalam hierarki kelas Java yang dapat ditelusuri (lihat Contoh):
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 adalah versi terakhir yang kompatibel dengan JDK8. JSQLParser-5.0 terbaru bergantung pada JDK11 dan memperkenalkan perubahan yang dapat menyebabkan gangguan API pada Pengunjung AST. Silakan lihat Panduan Migrasi untuk rinciannya.
JSqlParser bertujuan untuk mendukung standar SQL serta semua RDBMS utama. Sintaks atau fitur apa pun yang hilang dapat ditambahkan sesuai permintaan.
RDBMS | Pernyataan |
---|---|
Peramal MS SQL Server dan Sybase Postgres MySQL dan MariaDB DB2 H2 dan HSQLDB dan Derby SQLite | SELECT INSERT , UPDATE , UPSERT , MERGE DELETE , TRUNCATE TABLE CREATE ... , ALTER .... , DROP ... WITH ... |
SOQL Tenaga Penjualan | INCLUDES , EXCLUDES |
JSqlParser juga dapat digunakan untuk membuat Pernyataan SQL dari Kode Java dengan API yang lancar (lihat Contoh).
Jika Anda menyukai JSqlParser, silakan lihat proyek terkaitnya:
JSQLFormatter untuk mencetak dan memformat Teks SQL dengan cantik
JSQLTranspiler untuk penulisan ulang dialek tertentu, resolusi Kolom SQL, dan Silsilah
General SQL Parser terlihat cukup bagus, dengan sintaks SQL yang diperluas (seperti PL/SQL dan T-SQL) dan java + .NET API. Alat ini bersifat komersial (lisensi tersedia online), dengan opsi unduh gratis.
Alternatifnya, JOOQ berlisensi ganda menyediakan Parser tulisan tangan yang mendukung banyak RDBMS, terjemahan antar dialek, transformasi SQL, dapat digunakan sebagai proxy JDBC untuk tujuan penerjemahan dan transformasi.
JSqlParser memiliki lisensi ganda di bawah LGPL V2.1 atau Lisensi Perangkat Lunak Apache, Versi 2.0 .