简介
JSqlParser是一个SQL语句解析器。它将SQL转换为Java类的可遍历层次结构。
支持Oracle,SqlServer,MySQL,PostgreSQL等常用数据库。但各种数据库系统的SQL语法都在动态变化,可以解析某些(不是全部)。
JSqlParser就是一个把SQL转换为JAVA对象操作的工具包,但是发现此类文章较少,文档也不太详细,所以写个系列博客供参考。
GitHub地址
入门案例
- 添加pom
<dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>4.0</version></dependency>
- 测试类
@SpringBootTest
public class JsqlparserTest {@Testpublic void testSelect() throws JSQLParserException {// 使用工具类把SQL转换为Select对象Select select = (Select) CCJSqlParserUtil.parse("SELECT username,age,sex FROM user");SelectBody selectBody = select.getSelectBody();System.err.println(selectBody);}
}
源码结构
-
expression:SQL构建相关类,比如EqualsTo、InExpression等表达式用于构建SQL。
-
parser: SQL解析相关类,比如CCJSqlParserUtil。
-
schema:主要存放数据库schema相关的类 ,比如表、列等。
-
statement:封装了数据库操作对象,create、insert、delete、select等
-
util: 各种工具类、不同DB版本、SQL标准等处理类,如SelectUtils、DatabaseType等。