我需要一个解析器,它应该以格式
返回列名及其对应的表名column_name table_name
最好是一个java库,它可以使实现更容易,因为我不想深入了解SQL解析的所有细微差别。
的问候,
答案 0 :(得分:2)
如果您有与数据库的连接,则可以使用预准备语句执行此操作:
String sql = "....";
PreparedStatement pstmt = connection.prepareStatement(sql);
ResultSetMetaData meta = pstmt.getMetaData();
然后,您可以使用ResultSetMetaData.getColumnCount()
和getColumnName(int)
来检索列名称。如果您的JDBC驱动程序支持它,您甚至可以使用getTableName(int)
请注意,并非所有驱动程序都支持在实际执行语句之前获取元数据,您需要使用正在使用的驱动程序对其进行测试。
答案 1 :(得分:1)
好问题! 我刚刚进行了一些谷歌搜索,发现了以下有趣的参考资料:
http://www.gibello.com/code/zql/
http://www.sqlparser.com/sql-parser-java.php
我希望这会有所帮助。