我表里的ID字段是自动递增字段   我插入数据用sequence.nextval生成这个ID我现在想每插入一条记录时,就拿到这个ID我差API有这么两种方法
PreparedStatement psmcnn.prepareStatement("insert into bbs values(seq.nextval,?,?)",Statement.RETURN_GENERATED_KEYS );
......
psm.executeUpdate();
ResultSet rs = psm.getGeneratedKeys();//获取自动递增字段的结果集
rs.next();
int id = rs.getInt(1)   //获取seq.nextval的值不知这个方法可不可以拿到递增字段的值呢,在mysql下我试了,可以.
但我现在我用的是oracle数据库,为什么每次运行到int id = rs.getInt(1)就报错?
rs.getInt(1)返回的是RowId类型,这个类型怎么转换为int类型?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【jingulang】截止到2008-07-21 14:45:47的历史汇总数据(不包括此帖):
    发帖的总数量:29                       发帖的总分数:940                      每贴平均分数:32                       
    回帖的总数量:424                      得分贴总数量:165                      回帖的得分率:38%                      
    结贴的总数量:29                       结贴的总分数:940                      
    无满意结贴数:2                        无满意结贴分:40                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:6.90  %               无满意结分率:4.26  %                  
    敬礼!
      

  2.   

    你需要首先执行 select seq.nextval from dual 返回一个序列值,然后再用这个值来做插入,这样你就可以得到了这个值了啊。
      

  3.   

    先select   ROWIDTOCHAR(rowid)   as   id   from your_table;
    然后用ResultSet.getString("id");
      

  4.   

    select seq.currval from dual
    返回sequence的当前值。rs.getInt(1)报错那就rs.getString(1)试试看咯。
      

  5.   

    还是包错不知该 get什么..
      

  6.   

    lz你加个方法不就行了
    你插入时的id从以下的方法获得你不就取得id了吗public Integer getId() throws Exception{
    Connection conn=null;
    PreparedStatement pstm=null;
    ResultSet rs=null;
    try{
        conn=JdbcUtil.getConnection();
        String sql="select seq.nextval from dual";
                        pstm=conn.prepareStatement(sql);
                        rs=pstm.executeQuery();
                        Integer id=null;
                        if(rs.next()){
                    id=rs.getInt(1);
                    }
                    return id;
    }finally{
      if(rs!=null)  try{  rs.close(); } catch(Exception e){}
      if(pstm!=null)   try{  stm.close(); } catch(Exception e){}
                      if(conn!=null)   try{  conn.close(); } catch(Exception e){} 
                    }
    }
      

  7.   

    不好意思没仔细看你下面已经写了代码了.
    那lz可以参考下我的代码就是我以前在oracle数据库用jdbc写的