我想获取类似于mysql_insert_id()的mysql命令,该命令检索最后插入行的auto_increment id。我该如何在Java中获取它?
rs = st.executeQuery("select last_insert_id() from schedule");
lastid = rs.getString("last_insert_id()");
我的lastid被声明为INT。我不知道在rs.get中要使用什么以及参数是什么。
使用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);
尝试使用别名
rs = st.executeQuery("select last_insert_id() as last_id from schedule");
lastid = rs.getString("last_id");
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
,那么你需要相应地在上面的查询中进行替换。你可以像这样使用它:rs = st.executeQuery("SELECT MAX(id) AS id FROM schedule");
int lastid = rs.getInt("id");
rs = st.executeQuery("SELECT MAX(id) id FROM schedule");
- John Woo您可以使用以下查询语句获取最后插入行的自增ID。
SELECT (max(auto_incr_id)) from table_name;
另一种方式:
ResultSet rs = stmt.executeQuery("SELECT last_insert_id()");
while(rs.next()){
System.out.println("id = " + rs.getLong(1));
}