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

时间:2011-06-15 06:27:28

标签: java sql parsing sdk

  

可能重复:
  SQL parser library for Java

我需要一个解析器,它应该以格式

返回列名及其对应的表名
  

column_name table_name

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

的问候,

2 个答案:

答案 0 :(得分:2)

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

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

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

获取基础表名称

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

答案 1 :(得分:1)

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

SQL parser library for Java

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

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

我希望这会有所帮助。