在 JDBC 中获取列名
Posted
技术标签:
【中文标题】在 JDBC 中获取列名【英文标题】:getting column names in JDBC 【发布时间】:2011-08-01 09:53:13 【问题描述】:我想知道如何判断某个数据库表中是否存在具有某个名称的列。我正在使用 JDBC,但如果它可以用纯 SQL 完成,那就更好了。然而,该解决方案必须独立于 DBMS 提供者。我想我可以通过查询表的第一行并从中获取 ResultSetMetaData 来做到这一点,但这假设表中有一行。我希望它也可以与空表一起使用。提前致谢!
【问题讨论】:
ResultSetMetaData
仍然有效,即使表是空的...
【参考方案1】:
您可以从DatabaseMetaData
获取它们。
DatabaseMetaData meta = connection.getMetaData();
ResultSet rs = meta.getColumns(...);
【讨论】:
请注意,当您使用getColumns(null,null,tablename,null)
获取表的列时,表名区分大小写。【参考方案2】:
表是否为空无关紧要。 ResultSetMetaData 仍会为您提供有关 ResultSet 对象中列的类型和属性的信息。
【讨论】:
【参考方案3】:您可以使用 java.sql.DatabaseMetaData 接口检索有关数据库结构的一般信息。
DatabaseMetaData dbmeta = con.getMetaData();
调用 getColumns(),获取可用表列的描述。
【讨论】:
以上是关于在 JDBC 中获取列名的主要内容,如果未能解决你的问题,请参考以下文章