在mysql中获取最后插入的自动增量ID

我试图获取mysql命令,如mysql_insert_id(); 它检索最后插入的行的auto_increment id。 我能用Java做些什么?

rs = st.executeQuery("select last_insert_id() from schedule"); lastid = rs.getString("last_insert_id()"); 

我的lastid被宣布为INT。 我不知道在rs.get中使用什么以及参数..

尝试使用别名

 rs = st.executeQuery("select last_insert_id() as last_id from schedule"); lastid = rs.getString("last_id"); 

使用JDBC,您可以使用Connection.PreparedStatement(query,int)方法。

 PreparedStatement pstmt = conn.prepareStatement(Query, Statement.RETURN_GENERATED_KEYS); pstmt.executeUpdate(); ResultSet keys = pstmt.getGeneratedKeys(); keys.next(); key = keys.getInt(1); 

看这篇文章的答案和解释

 Statement stmt = db.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); numero = stmt.executeUpdate(); ResultSet rs = stmt.getGeneratedKeys(); if (rs.next()){ risultato=rs.getInt(1); } 

为什么不

 SELECT MAX(id) FROM schedule 

如果id列的名称与id不同,则需要在上面的查询中相应地替换它。

您可以像以下一样使用它:

 rs = st.executeQuery("SELECT MAX(id) AS id FROM schedule"); int lastid = rs.getInt("id"); 

您可以使用以下查询来获取上次插入行的最后一次auto_incremented ID。

 SELECT (max(auto_incr_id)) from table_name;