把表结构定义帖出来看看,我觉得你定义的自动加1的字段有问题
自动编号对的话可以做为主键,不可能重复
对了,要返回最后一条id,将你插入时的id值直接再传回去不就得了

解决方案 »

  1.   

    我说的插入信息都不是唯一
    是指用ID做主键,而插入信息是指除ID以外的信息。
      

  2.   

    哦,理解
    你用什么数据库,JDBC好像不支持直接定位到某条记录上
    要不你再用select max(id) from TB 返回最大值
    对了,在查找前最好将插入语句的事务提交了,确认是执行了的
      

  3.   

    如果ResultSet支持游标的话
    rs.last()
    取id的值就可以了
      

  4.   

    谢谢了!!!!
    从记录集result中取得一个字符串值用result.getString(1);
    但是从记录集result中取得一个整数应该用什么???????
    高手请指点。
    谢谢!!!!!
    很急的!!!
      

  5.   

    取得string类型的值后,再转化成int型
      

  6.   

    使用存储过程
    create table (
    id numeric(9,0) identity primary key,
    field1 varchar(20),
    field2 smallint
    ) with identity_gap=20--sybase 需要这个
    go
    CREATE PROCEDURE TableNameInsert(@field1 varchar(20),@field2 smallint,@recordID int output)
    AS
    BEGIN
       INSERT INTO TableName(field1 ,field2 )
       VALUES(@field1,@field2)   SELECT @recordID=@@identity
    END
    go在javaBean或JSP中:Connection con = ConnectionManager.getConnection();
    CallableStatement cstmt = con.prepareCall("{call TableNameInsert(?,?,?)}");
    cstmt.setString(1, value1);
    cstmt.setInt(2, value2);
    cstmt.registerOutParameter(3, java.sql.Types.INTEGER);//注册返回值
    cstmt.executeUpdate();
    identityID=cstmt.getLong(3);//取得自动增长的返回值
    ---------------------------------------------------
     
            我的热情离不开你的鼓励!
      

  7.   

    谢谢各位!!!!!
    以下是我用来取最大的ID值的,可是出错了,请问为什么????
    Statement statement=con.createStatement();
    ResultSet result=statement.executeQuery("select max(ClientID) from tbClients");
    int clientid=0;
    clientid=result.getInt(1);
    出错提示:
    java.sql.SQLException: [Microsoft][ODBC ???? ???] ???????
      

  8.   

    这还用问,没有联接成功数据库。在你的ODBC数据源
      

  9.   

    我建议你用
    select ID from tbClients order by ID desc
    查找
    然后
    rs.next();
    int max_id = rs.getInt(1);