数据表以id升序,id是自增长的。
我要插入的一条记录后,马上得到刚刚插入的纪录,也就是最后一条记录。
插入是正常的,可是取最后一条记录时总有问题,比如,刚插入的是id=201,可是取到的是id=200
我的sql有错吗?
sql如下:
pstmt=conn.prepareStatement(sql);  
pstmt.setString(1, title);
pstmt.setString(2, class);
pstmt.executeUpdate();pstmt1=conn.prepareStatement("select id,title,time from a");  
rs=pstmt1.executeQuery();
rs.last();

解决方案 »

  1.   

    pstmt1=conn.prepareStatement("select max(id) as id from a");  
    rs=pstmt1.executeQuery();
    String maxid="";
    if(rs.next()){
      maxid=rs.getString("id");
    }
      

  2.   

    pstmt=conn.prepareStatement(sql);  
    pstmt.setString(1, title);
    pstmt.setString(2, class);
    pstmt.executeUpdate();/////////////
    conn.close()
    ////////////pstmt1=conn.prepareStatement("select id,title,time from a");  
    rs=pstmt1.executeQuery();
    rs.last();
      

  3.   

    lip009(深蓝忧郁)的方法只能得到id,但我还要得到title和class,
    happyzhu() ( ) 的方法不可行,因为数据库不能关闭
      

  4.   

    再改SQL语句,加进子查询
    select id,title,time from a where id=(select max(id) from a)
      

  5.   

    pstmt1=conn.prepareStatement("select id,title,time from a where id=(select max(id) from a)");  
    rs=pstmt1.executeQuery();
    String maxid="";
    if(rs.next()){
      maxid=rs.getString("id");
      ...
    }
      

  6.   

    把前一个连接关闭了,从新拿一个连接使用...这样最安全,因为数据库连接connection和pstmt和rs都是绑定的.要不把前面的pstmt.close()掉再试试