我可以通过Connector / J插入MySQL。但是:
res = stmt.executeUpdate(query);
什么都不返回。我如何知道新生成的行自动增量键值。 我需要引用刚生成的第一行。
答案 0 :(得分:3)
您可以使用last_insert_id()
或JDBC API来检索生成的密钥:
String query = "insert into ....";
PreparedStatement pstmt = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
int rowsAffected = pstmt.executeUpdate();
int newId = -1;
ResultSet rs = pstmt.getGeneratedKeys();
if (rs.next())
{
newId = rs.getInt(1);
}
rs.close();
pstmt.close();
答案 1 :(得分:0)
插入后,在同一连接上,立即发出以下SQL查询:
SELECT LAST_INSERT_ID()
返回最近生成的自动增量值。它存储在每个连接的基础上,因此即使在繁忙的多客户端数据库上它也是可靠的。
答案 2 :(得分:0)
executeUpdate
会根据您的查询返回受影响的行数。
要获取最新的自动增量ID,您需要执行另一个查询。我使用了SELECT LAST_INSERT_ID();
,它应该返回最新的值