我正在尝试获取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中使用什么,也不知道参数。
kwvwclae1#
使用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);
nxagd54h2#
尝试使用别名
rs = st.executeQuery("select last_insert_id() as last_id from schedule"); lastid = rs.getString("last_id");
oalqel3c3#
答案和解释请参见this帖子
Statement stmt = db.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); numero = stmt.executeUpdate(); ResultSet rs = stmt.getGeneratedKeys(); if (rs.next()){ risultato=rs.getInt(1); }
9vw9lbht4#
为什么不呢
SELECT MAX(id) FROM schedule
如果id您的列的名称与id不同,则需要在上面的查询中相应地替换它。您可以像这样使用它:
id
rs = st.executeQuery("SELECT MAX(id) AS id FROM schedule"); int lastid = rs.getInt("id");
1qczuiv05#
您可以使用以下查询来获取最后插入行的last auto_incremented ID。
SELECT (max(auto_incr_id)) from table_name;
falq053o6#
另一种选择:第一个月
eaf3rand7#
另一种方式:
ResultSet rs = stmt.executeQuery("SELECT last_insert_id()"); while(rs.next()){ System.out.println("id = " + rs.getLong(1)); }
7条答案
按热度按时间kwvwclae1#
使用JDBC时,可以使用**Connection.PreparedStatement(query,int)**方法。
nxagd54h2#
尝试使用别名
oalqel3c3#
答案和解释请参见this帖子
9vw9lbht4#
为什么不呢
如果id您的列的名称与
id
不同,则需要在上面的查询中相应地替换它。您可以像这样使用它:
1qczuiv05#
您可以使用以下查询来获取最后插入行的last auto_incremented ID。
falq053o6#
另一种选择:
第一个月
eaf3rand7#
另一种方式: