首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用JSQLParser获取选择子句的主体

如何用JSQLParser获取选择子句的主体
EN

Stack Overflow用户
提问于 2015-05-22 07:38:40
回答 1查看 1.6K关注 0票数 0

我用的是JsqlParser 0.8.0

我有以下字符串:

代码语言:javascript
复制
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-query都被打印出来了。如何才能使打印仅SelectBody

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-28 11:47:55

SelectBodyPlainSelect型。这并不等同于您想要得到的SelectItems。以下是获取这些项目的示例:

代码语言:javascript
复制
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,但是在V0.8.0中获取SelectItems的相关部分是相同的。

不应将关键字用作列或表名。这可能在许多方面混淆解析过程。然而,在JSqlParser的最新版本中,越来越多的关键字被允许。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30390962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档