我的代码如下:
DatabaseMetaData dmd = connection.getMetaData();
ResultSet rs = dmd.getPrimaryKeys(null, null, tableName);
while(rs.next()){
primaryKey = rs.getString("COLUMN_NAME");
}
rs 不是 null 而rs.next()
总是 return false
,有人知道吗?谢谢。
元数据接口实现由驱动程序供应商实现。某些驱动程序和某些数据库可能不支持它。下面是来自 javadoc 的文本:一些 DatabaseMetaData 方法以 ResultSet 对象的形式返回信息列表。常规 ResultSet 方法,例如 getString 和 getInt,可用于从这些 ResultSet 对象中检索数据。如果给定形式的元数据不可用,则将返回一个空的 ResultSet。
oracle中的表名区分大小写
或尝试以下方法
数据库元数据 dm = conn.getMetaData( ); 结果集 rs = dm.getExportedKeys( "" , "" , "table1" ); 同时(rs.next()) { 字符串 pkey = rs.getString("PKCOLUMN_NAME"); System.out.println("主键 = " + pkey); }
您还可以使用 getCrossReference 或 getImportedKeys 来检索主键