从ResultSet Java获取主键列

我正在尝试从ResultSet获取表的主键列。以下是步骤

我跟着:

1. SQL QUERY: Select id,subid,email,empname from Employee

2. Executed this from java.sql.Statement and got the Results in ResultSet.

这是有趣的部分。

3. ResultSetMetadata rsmd = rs.getMetadata();

现在,如果我观看此变量“ ”,它将显示相关列名的主键标志,但我无法访问它或将其放入任何变量。

我需要同样的帮助。

注意:我不想使用DatabaseMetadata及其getPrimaryKeys()函数,因为它将对外部数据库产生额外的影响。另外,ResultSetMetadata对象已经具有主键信息,我只需要获取它即可。

回答:

我有一个想法,检查表中的列是否为主 键或不 使用ResultSet

在MySql

JDBC驱动程序中,如果仔细看一下,的实际实现类java.sql.ResultSetMetaData将是com.mysql.jdbc.ResultSetMetaDataclass。此类提供一种protected获取有关每个字段的信息的方法

protected Field getField(int columnIndex) throws SQLException {

此方法可以为您Field提供每个column索引的实例。 使用Field实例,您可以访问Field的属性 。要检查它是否为主键,可以调用

Field.isPrimaryKey()

使用com.mysql.jdbc.ResultSetMetaData类型为的FQN

((com.mysql.jdbc.ResultSetMetaData)

rsmd).getField(i).isPrimaryKey()。这是因为您不能导入两个具有相同名称的类文件并在文件中使用它们

请阅读MySql JDBC API

中Field的文档以了解有关它的更多信息。希望这可以帮助!

以上是 从ResultSet Java获取主键列 的全部内容, 来源链接: utcz.com/qa/431303.html

回到顶部