解析器解析SQL查询并在Java中返回列名和相应的表名

可能重复:
Java的SQL解析器库

我需要一个解析器,它应该返回列名称及其格式的相应表名

column_name table_name

最好是一个java库,它可以使实现更容易,因为我不想进入SQL解析的所有细微差别。

问候,

如果您有与数据库的连接,则可以使用预准备语句执行此操作:

String sql = "...."; PreparedStatement pstmt = connection.prepareStatement(sql); ResultSetMetaData meta = pstmt.getMetaData(); 

然后,您可以使用ResultSetMetaData.getColumnCount()getColumnName(int)来检索列名称。 如果您的JDBC驱动程序支持它,您甚至可以使用getTableName(int)获取基础表名称

请注意,并非所有驱动程序都支持在实际执行语句之前获取元数据,您需要使用您正在使用的那个来测试它。

好问题! 我刚刚进行了一些谷歌搜索,发现了以下有趣的参考资料:

Java的SQL解析器库

http://www.gibello.com/code/zql/

http://www.sqlparser.com/sql-parser-java.php

我希望这有帮助。