Java 获取列详细信息的数据库元数据

Java 获取列详细信息的数据库元数据,java,jdbc,database-metadata,Java,Jdbc,Database Metadata,我使用databasemetadata查找列大小。但是getColumnShell,null,table_name,null返回一个空结果集。我通过查询来检查该表,该表已存在。错误在哪里?提前谢谢 更新: 您正在使用哪个数据库?这可能与它如何处理不带引号的标识符有关,遵循标准的数据库会自动将它们存储在大写字母中。您可以通过调用storesUpperCaseIdentifiers方法以编程方式检查它是否这样做 解决方案是在创建表时使用带引号的标识符,或者在storesUpperCaseIdenti

我使用databasemetadata查找列大小。但是getColumnShell,null,table_name,null返回一个空结果集。我通过查询来检查该表,该表已存在。错误在哪里?提前谢谢

更新:


您正在使用哪个数据库?这可能与它如何处理不带引号的标识符有关,遵循标准的数据库会自动将它们存储在大写字母中。您可以通过调用storesUpperCaseIdentifiers方法以编程方式检查它是否这样做


解决方案是在创建表时使用带引号的标识符,或者在storesUpperCaseIdentifiers返回true时对表名字符串调用toUpperCase方法。

您可以尝试以下代码段吗:

ResultSet rsColumns = null;
DatabaseMetaData meta = connection.getMetaData();
rsColumns = meta.getColumns(null, null, "table_name",null);     
While (rsColumns,next()) {
System.out.println(rsColumns.getInt("COLUMN_SIZE"));
}
我想你错过了栏目的大小

ResultSet rsColumns = null;
DatabaseMetaData meta = connection.getMetaData();
rsColumns = meta.getColumns(null, null, "table_name",null);     
While (rsColumns,next()) {
System.out.println(rsColumns.getInt("COLUMN_SIZE"));
}