代码之家  ›  专栏  ›  技术社区  ›  Andrei0408

尝试获取最后一个自动递增值时获取SQL异常

  •  0
  • Andrei0408  · 技术社区  · 3 年前

    我一直在尝试一切,什么都没用,我对mysql和数据库都是新手,我想得到最后一个自动递增的id(主键)( user_id )来自表,来自java。因此: SELECT MAX(user_id) FROM database_user; 在mysql中工作很好,我知道了,但是为什么我不能从java中得到同样的东西呢??

    PreparedStatement st = connection.prepareStatement("SELECT MAX(user_id) from database_user");
    st.executeUpdate();
    ResultSet rs = st.executeQuery();
    int uid = rs.getInt(1);
    System.out.println(uid);
    

    这让我 java.sql.SQLException: (conn=213) the given SQL statement produces an unexpected ResultSet object

    这不是我试过的唯一一件事,这只是目前为止的最后一件事。如果有人能透露一些信息,我将非常感激。

    1 回复  |  直到 3 年前
        1
  •  0
  •   Dawood ibn Kareem    3 年前

    你失踪了 rs.next(); 在执行查询和从结果集提取之间。这是将结果集移动到第一行所必需的。

    你也不应该 st.executeUpdate() .只要执行一次就足够了。