我的代码如下:
DatabaseMetaData dmd = connection.getMetaData();
ResultSet rs = dmd.getPrimaryKeys(null, null, tableName);
while(rs.next()){
primaryKey = rs.getString("COLUMN_NAME");
}
rs不为空而rs.next()
总是返回false
,有人对此有所了解吗?感谢。
答案 0 :(得分:3)
元数据接口实现由驱动程序供应商实现。某些驱动程序和某些数据库可能不支持它。 这是来自javadoc的文本: 某些DatabaseMetaData方法以ResultSet对象的形式返回信息列表。常规ResultSet方法(如getString和getInt)可用于从这些ResultSet对象中检索数据。如果给定形式的元数据不可用,则将返回空ResultSet。
表名在oracle
或尝试以下方法
DatabaseMetaData dm = conn.getMetaData( ); ResultSet rs = dm.getExportedKeys( "" , "" , "table1" ); while( rs.next( ) ) { String pkey = rs.getString("PKCOLUMN_NAME"); System.out.println("primary key = " + pkey); }
你也可以使用getCrossReference或getImportedKeys来检索主键