跪求答案!JAVA中向ORACLE同时插入两个表,获得第一个表的主键,老提示无效的列类型,求高手解!

插2个表,我用批处理的方法,贴点大概的语句:pstmt=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS... 插2个表,我用批处理的方法,贴点大概的语句:
pstmt=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
然后处理完了ResultSet rsKey=pstmt.getGeneratedKeys(); //1
rsKey.next(); //2
int orderid = rsKey.getInt(1);//3
DEBUG结果是前面全没问题包括1,2两步都对的,并且rsKey.next()为TRUE。在执行第3步后跳到异常,提示
java.sql.SQLException: 无效的列类型: getInt not implemented for class oracle.jdbc.driver.T4CRowidAccessor

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.Accessor.unimpl(Accessor.java:357)
at oracle.jdbc.driver.Accessor.getInt(Accessor.java:467)
at oracle.jdbc.driver.OracleReturnResultSet.getInt(OracleReturnResultSet.java:265)
.....
很郁闷,弄了一整天了。不知道怎么回事。望高手解答,万谢啊
现在貌似找到问题根源了,我补充一下,我的主键是seq_id.nextval这样插入的,
我现在改成rsKey.next();
String id = rsKey.String(1);
int orderid=Integer.parseInt(id);
提示java.lang.NumberFormatException: For input string: "AAAM/wAAEAAAAHwAAB"

这个是什么格式啊??怎么处理?
而且这个seq_id.nextval 的值肯定是INT啊不需要转,关键是 我获取的主键怎么是这么一串 "AAAM/wAAEAAAAHwAAB" 很奇怪
展开
 我来答
paul0826cn
2009-04-03
知道答主
回答量:15
采纳率:0%
帮助的人:0
展开全部
你用的oracle数据库吧,你得到的是记录唯一标示ROWID。不是你sequence得到的值,还是将你的字段名植入吧。再试试吧。
20808301a
2009-04-03 · TA获得超过534个赞
知道小有建树答主
回答量:276
采纳率:0%
帮助的人:260万
展开全部
: getInt not implemented for class oracle.jdbc.driver.T4CRowidAccessor
说明你取出的rsKey.getInt(1) 不是int的.
看你表中字段是啥类型的。就应该.getString or getDouble
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式