我有代码如下:
DatabaseMetaData dmd = connection.getMetaData(); ResultSet rs = dmd.getPrimaryKeys(null,null,tableName); while(rs.next()){ primaryKey = rs.getString("COLUMN_NAME"); }
rs不为空,而rs.next()总是返回false,任何人都有想法?谢谢.
解决方法
>元数据接口实现由驱动程序供应商实现.某些驱动程序和某些db可能不支持它.
这里是javadoc的文本:
一些DatabaseMetaData方法以ResultSet对象的形式返回信息列表.常规ResultSet方法(如getString和getInt)可用于从这些ResultSet对象中检索数据.如果给定的元数据形式不可用,则返回一个空的ResultSet.
>表名在oracle中区分大小写
>或尝试以下方法
这里是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来检索主键
原文地址:https://www.jb51.cc/java/125967.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。