gpt4 book ai didi

java - 如何使用 JSQLParser 获取 Select 子句的主体

转载 作者:行者123 更新时间:2023-12-01 11:30:57 30 4
gpt4 key购买 nike

我正在使用 JsqlParser 0.8.0

我有以下字符串:

String sql = "SELECT table alias FROM table;";

CCJSqlParserManager pm = new CCJSqlParserManager();

Select s = (Select) pm.parse(new StringReader(sql));

System.out.println(s.getSelectBody());

我期望打印table AS alias,但是打印了整个sql查询。如何仅打印 SelectBody

最佳答案

SelectBody 的类型为 PlainSelect。这不等于您想要获取的 SelectItems。这是获取这些项目的示例:

String sqlStr = "SELECT mytable alias FROM mytable";
Select select = (Select)CCJSqlParserUtil.parse(sqlStr);
System.out.println(select.getSelectBody());

PlainSelect pl = (PlainSelect)select.getSelectBody();
for (SelectItem item : pl.getSelectItems()) {
System.out.println(item.toString());
}

顺便说一句,这个示例使用JSqlParser V0.9.3,但获取SelectItems的相关部分在V0.8.0中是相同的。

您不应使用关键字作为列名或表名。这可能会在很多方面混淆解析过程。但是,JSqlParser 的最新版本允许使用越来越多的关键字。

关于java - 如何使用 JSQLParser 获取 Select 子句的主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30390962/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com