Java 在JDBC中获取列名

Java 在JDBC中获取列名,java,sql,jdbc,Java,Sql,Jdbc,我想知道如何判断特定数据库表中是否存在具有特定名称的列。我使用的是JDBC,但如果可以用纯SQL实现,那就更好了。但是,解决方案必须独立于DBMS提供程序。我想我可以通过查询表的第一行并从中获取ResultSetMetaData来实现这一点,但前提是表中有一行。我希望它也能在一张空桌子上工作。提前谢谢 您可以从数据库元数据获取它们 DatabaseMetaData meta = connection.getMetaData(); ResultSet rs = meta.getColumns(..

我想知道如何判断特定数据库表中是否存在具有特定名称的列。我使用的是JDBC,但如果可以用纯SQL实现,那就更好了。但是,解决方案必须独立于DBMS提供程序。我想我可以通过查询表的第一行并从中获取ResultSetMetaData来实现这一点,但前提是表中有一行。我希望它也能在一张空桌子上工作。提前谢谢

您可以从
数据库元数据
获取它们

DatabaseMetaData meta = connection.getMetaData();
ResultSet rs = meta.getColumns(...);

桌子是空的没关系。仍将为您提供有关ResultSet对象中列的类型和属性的信息。

您可以使用java.sql.DatabaseMetaData接口检索有关数据库结构的一般信息

DatabaseMetaData dbmeta = con.getMetaData();

调用getColumns(),以获取可用表列的说明

ResultSetMetaData
仍然有效,即使表是空的……请注意,在使用
getColumns(null,null,tablename,null)
获取表的列时,表名区分大小写。