错误的获取方法
网上绝大部分文章都是使用以下方法获取 mysql 的表注释
Connection conn = DriverManager.getConnection(url, user, password);
DatabaseMetaData dbMetaData = conn.getMetaData();
ResultSet rs = dbMetaData.getTables("数据库名", null, "表名", null);
while (rs.next()) {
String tableRemark = rs.getString("REMARKS");
}
复制代码
实测根本获取不到,刚开始以为是mysql-jdbc驱动的版本导致了,实际测试之后发现,跟mysql-jdbc驱动的版本没关系
获取不到的原因
下载了 Mysql 的驱动源程序进行了代码的查询,发现他在获取表元数据的时候已经将表注释长度设置成 0 了
也就是说,所有通过调用 DatabaseMetaData
类的 getTables()
方法获取到的 ResultSet
对象中都没有表注释信息
正确的获取方法
那么该怎么通过 JDBC 获取到 mysql 表的注释呢?
可以通过下面的的方法
String tableSchema = "数据库名";
String table = "表名";
String sql = "SELECT TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '"+tableSchema+"' AND TABLE_NAME = '"+table+"'";
Connection conn = DriverManager.getConnection(url, user, password);
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
String tableRemark = rs.getString(1);
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END