我的代码如下:
DatabaseMetaData dmd = connection.getMetaData();
ResultSet rs = dmd.getPrimaryKeys(null, null, tableName);
while(rs.next()){
primaryKey = rs.getString("COLUMN_NAME");
}
rs 不为空,同时rs.next()
总是回来false
,有人对此有想法吗?谢谢。
元数据接口实现由驱动程序供应商实现。某些驱动程序和某些数据库可能不支持它。
这是来自 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 来检索主键
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)