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

时间:2021-09-30 23:00:49

I am writing a Java Application. I have got a ResultSet. Now I want to find out the coloumn name of the primary key of the table.

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

Is it possible to get that coloumn name through ResultSet object or ResultSetMetaData Object or any other way.

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

I didn't find any way to find this.

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

3 个解决方案

#1


9  

No. You will not get that information from ResultSet or ResultSetMetadata.

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

What you want to use for that is DatabaseMetadata class. From that class check getPrimaryKeys method to get the information you want.

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

Of course, to use this, you will need to know the name of the table.

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

#2


3  

I want to add, if in a table you have autoincrement field, it must be the primary key. So, your code could look like this:

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

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

It uses ResultSetMetaData.

它使用ResultSetMetaData。

#3


0  

A nice tool which you can use to verify the metadata information is dbVisualizer.

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

It uses the JDBC metadata to retrieve table definitions and other parts of the database. Schema and Catalog are columns in the table definition view - so you can check which values are in these columns for your favorite database.

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

dbVisualizer is available in a free basic version.

dbVisualizer提供免费的基本版本。

#1


9  

No. You will not get that information from ResultSet or ResultSetMetadata.

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

What you want to use for that is DatabaseMetadata class. From that class check getPrimaryKeys method to get the information you want.

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

Of course, to use this, you will need to know the name of the table.

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

#2


3  

I want to add, if in a table you have autoincrement field, it must be the primary key. So, your code could look like this:

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

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

It uses ResultSetMetaData.

它使用ResultSetMetaData。

#3


0  

A nice tool which you can use to verify the metadata information is dbVisualizer.

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

It uses the JDBC metadata to retrieve table definitions and other parts of the database. Schema and Catalog are columns in the table definition view - so you can check which values are in these columns for your favorite database.

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

dbVisualizer is available in a free basic version.

dbVisualizer提供免费的基本版本。