如何获得 insert 后的结果集,因为那个表中有一个自增字段id,我想用它,insert 后再查这种办法觉得不大好,不知道还有没有什么好办法,大家指教一下。另外是不是只有 select 操作才返回结果集呢?

解决方案 »

  1.   

    还有一个问题就是执行完插入操作后,Eclipse 下面有一行红字
    “aq.executeQuery:[Microsoft][SQLServer 2000 Driver for JDBC]No ResultSet set was produced.”
    这个没错吧?看到红字觉得有点不大对,不过查看数据库,数据是插进去了
      

  2.   

    楼主的意思是说 查询出所刚刚插入的吗?
    如果是这样的话在insert之前 先select max自增id+1 此时的数据就是你insert的数据
      

  3.   

    获得insert的id就是insert之前max(id)+1。
      

  4.   

    在insert 之前用 select  max(i)  from  youtable ,         int  curid =Integer.paseInt(rs.getInt(id))+1, 
            
      这样curid 就是你想要的结果了
      

  5.   

    你一定是用结果集来接收insert 的结果了,所以有那个错误提示“没有结果集产生”插入后select max(id)
      

  6.   

    有什么特别操作吗?其实也是想知道最大id而已,从DB里取出就行
    按照楼主的说法,可能会有多人同时操作,取出来的id也未必是自己刚才insert进DB里的记录。
    ^_^
      

  7.   

    已经很明了了,
    在insert之前,先找出最大id
    String maxsql = "SELECT MAX(ID) ID FROM table11";
         ResultSet rs = stmt.executeQuery(maxsql);
         int maxid = 1;     if(rs.next())    
         maxid = rs.getInt("ID")+1;PreparedStatement pstmt = null;    
         String strSql = "INSERT INTO table11(ID,xx,yy,zz)VALUES(?,?,?,?)";
         pstmt=conn.prepareStatement(strSql);    
            pstmt.setInt(1,maxid);
    .......
      

  8.   

    ls说的这个我已经知道了,我的问题是如何保证再执行完第一条查找最大 id 的语句后,没有别的程序来执行insert或者delete操作,以防取到了错误的数据