相关文章推荐
爱听歌的筷子  ·  JSON文件内容加注释的几种方法 - ...·  6 月前    · 
气势凌人的西装  ·  Selenium ...·  1 年前    · 
爱喝酒的草稿纸  ·  Matlab 中 set(h, ...·  1 年前    · 
重情义的弓箭  ·  Sonar问题及解决方案汇总 - 潘羊成 ...·  2 年前    · 
瘦瘦的跑步鞋  ·  浅解析js中的对象 - foodoir - 博客园·  2 年前    · 
小百科  ›  Java中如何解析SQL语句、格式化SQL语句、合成SQL语句?-腾讯云开发者社区-腾讯云
select
淡定的核桃
1 年前
作者头像
程序猿川子
0 篇文章

Java中如何解析SQL语句、格式化SQL语句、生成SQL语句?

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 用户9379187的专栏 > Java中如何解析SQL语句、格式化SQL语句、生成SQL语句?

Java中如何解析SQL语句、格式化SQL语句、生成SQL语句?

作者头像
程序猿川子
发布 于 2023-03-10 17:09:34
800 0
发布 于 2023-03-10 17:09:34
举报

JSqlParser

JSqlParser是一个用Java编写的SQL解析器,可以将SQL语句解析为Java对象,从而使开发人员能够轻松地分析、修改和重构SQL查询。

比如,这样的一句SQL语句 SELECT 1 FROM dual WHERE a = bSELECT 1 FROM dual WHERE a = b

JSqlParser 可以将其解析为如下对象结构

 SQL Text
  └─Statements: net.sf.jsqlparser.statement.select.Select
     └─selectBody: net.sf.jsqlparser.statement.select.PlainSelect
        ├─selectItems -> Collection<SelectExpressionItem>
        │  └─selectItems: net.sf.jsqlparser.statement.select.SelectExpressionItem
        │     └─LongValue: 1
        ├─Table: dual
        └─where: net.sf.jsqlparser.expression.operators.relational.EqualsTo
           ├─Column: a
           └─Column: b
复制代码

然后我们就可以通过其提供的API来访问这句SQL语句中的各个要素:

Statement statement = CCJSqlParserUtil.parse(sqlStr);
if (statement instanceof Select) {
    Select select = (Select) statement;
    PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
    SelectExpressionItem selectExpressionItem =
            (SelectExpressionItem) plainSelect.getSelectItems().get(0);
    Table table = (Table) plainSelect.getFromItem();
 
推荐文章
爱听歌的筷子  ·  JSON文件内容加注释的几种方法 - 莫水千流 - 博客园
6 月前
气势凌人的西装  ·  Selenium 系列篇(三):窗口篇-腾讯云开发者社区-腾讯云
1 年前
爱喝酒的草稿纸  ·  Matlab 中 set(h, 'ButtonDownFcn',@buttonDownCallback)_buttondownfcn matlab_荪荪的博客-CSDN博客
1 年前
重情义的弓箭  ·  Sonar问题及解决方案汇总 - 潘羊成 - 博客园
2 年前
瘦瘦的跑步鞋  ·  浅解析js中的对象 - foodoir - 博客园
2 年前
Link管理   ·   Sov5搜索   ·   小百科
小百科 - 百科知识指南