如何从JAVA中的ResultSet或ResultSetMetaData对象获取数据库表的主键的列名?

时间:2010-02-06 11:56:09

标签: java jdbc metadata resultset

我正在编写Java应用程序。我有一个ResultSet。现在我想找出表格主键的coloumn名称。

是否可以通过ResultSet对象或ResultSetMetaData对象或任何其他方式获取该coloumn名称。

我没有找到任何办法找到这个。

3 个答案:

答案 0 :(得分:9)

没有。您不会从 ResultSet ResultSetMetadata 获取该信息。

您想要使用的是DatabaseMetadata课程。从该课程中检查 getPrimaryKeys 方法以获取所需信息。

当然,要使用它,您需要知道表的名称。

答案 1 :(得分:3)

我想补充一点,如果在一个表中你有自动增量字段,它必须是主键。所以,你的代码看起来像这样:

if(metaColumn.isAutoIncrement(i)) {
  primaryKey = metaColumn.getColumnName(i);
  i=nColoumn+1;
}

它使用ResultSetMetaData

答案 2 :(得分:0)

可用于验证元数据信息的一个很好的工具是dbVisualizer

它使用JDBC元数据来检索表定义和数据库的其他部分。模式和目录是表定义视图中的列 - 因此您可以检查最喜欢的数据库的这些列中的值。

dbVisualizer提供免费的基本版本。