What is it
JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes.
The generated hierarchy can be navigated using the Visitor Pattern
jsqlparser结构简单,继承也不复杂,并且setter和getter方法很全面,所以处理起来很容易。
How it works
It is built using JavaCC. The core JavaCC grammar for SQL has been taken from Guido Draheim's site and has been changed in order to produce a hierarchy of Java classes.
Alternatives to JSqlParser?
General SQL Parser looks pretty good, with extended SQL syntax (like PL/SQL and T-SQL) and java + .NET APIs. The tool is commercial (license available online), with a free download option.
How it can be used
The method CCJSqlParserManager.parse returns a class implementing Statement which can be used to navigate the structure representing the SQL statement.
To avoid using the instanceof operator as in:
if (statement instanceof Insert) {
// insert case
}
else if (statement instanceof Update) {
// update case
}
the hierarchy can be accessed using proper visitors:
void visit(Insert statement) {
// insert case
}
void visit(Update statement) {
// update case
}