因此,我正在将 Vaadin Java Web 框架用于需要编辑表的功能的项目。 Vaadin 提供了一种获取方法Connection
对象来自SimpleJDBCConnectionPool
(这是 API https://vaadin.com/api/com/vaadin/data/util/sqlcontainer/connection/SimpleJDBCConnectionPool.html)
来自Connection
我可以得到DatabaseMetaData
目的。我有以下代码:
private List<String> getTableNames(DatabaseMetaData md) throws SQLException {
ArrayList<String> tables = new ArrayList<String>();
ResultSet rs = md.getTables(null, null, "", null);
while (rs.next()) {
tables.add(rs.getString("TABLE_NAME")); //Column 3 is for table name
Logger.getLogger(CodeContainingClass.class.getName()).
info("Comment: " + rs.getString("REMARKS")); //Column 5 is for remarks
}
return tables;
}
它正确检索表名称,但不幸的是 REMARKS 返回null
. (这是 API http://docs.oracle.com/javase/6/docs/api/java/sql/DatabaseMetaData.html#getTables%28java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String%5B%5D%29)。我不确定我做错了什么。
我使用以下查询验证该表是否有注释:
SHOW TABLE STATUS WHERE Name='tablename';
任何帮助将不胜感激。非常感谢。
看到这个MySQL 连接器/J 错误 http://bugs.mysql.com/bug.php?id=65213(特别是2012年6月27日11:26和2012年6月28日11:18的评论)。您需要指定连接属性useInformationSchema=true
以获得此功能。
另请参阅连接器/J 连接属性 http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-configuration-properties.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)