我正在寻找 Java 中的开源 API 来解析 SQL/HQL 查询,以便它为我提供其中使用的列名和表名。我尝试使用 JSQLParser,它为我提供了查询中使用的表名。但我没有看到支持获取查询中使用的列名。有没有其他 API 可以帮助我解决这个问题?我知道通用 SQL 解析器,但它似乎是付费的。
这是使用 JSQLParser 的代码片段,它为我提供了查询中的表名:
Statement statement;
try
{
statement = CCJSqlParserUtil.parse( " SELECT * FROM ( ( SELECT TBL.ID AS rRowId, TBL.NAME AS name, TBL.DESCRIPTION as description, TBL.TYPE AS type, TBL1.SHORT_NAME AS shortName FROM ROLE_TBL TBL WHERE ( TBL.TYPE = 'CORE' OR TBL1.SHORT_NAME = 'TNG' AND TBL.IS_DELETED <> 1 ) ) MINUS ( SELECT TBL.ID AS rRowId, TBL.NAME AS name, TBL.DESCRIPTION as description, TBL.TYPE AS type, TBL3.SHORT_NAME AS shortName,TBL3.NAME …Run Code Online (Sandbox Code Playgroud)