我正在尝试做一些适用于我曾经使用过的每个数据库的东西。我想从插入中获取生成的键。我有oracle 12c设置并有下表:
CREATE TABLE countyUsers (id integer GENERATED AS IDENTITY,first varchar(255),last varchar(255),email varchar(255),userName varchar(255),unisonFailedLogins number,unisonLastFailedLogin number,unisonLastSuccessLogin number);
然后我运行一个插件并尝试使用jdbc瘦驱动程序获取生成的密钥:
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
if (rs.next()) {
long id = rs.getLong(1);
}
抛出数字格式异常。我可以得到一个rowid。回来的密钥是AAAWyHAAGAAAAFNAAA
而不是数字。我该怎么办呢?
由于
答案 0 :(得分:0)
有同样的问题,解决方法是告诉Oracle返回哪一列:
String[] generatedKeyColumns = new String[]{"id"};
PreparedStatement ps = connection.prepareStatement(insertStatement, generatedKeyColumns);