mysql中get last inserted auto increment id的重复问题
我正在创建一个组 M_GROUPS
. M_GROUPS
表格:
GROUP_ID INT AUTO_INCREMENT,
GROUP_CREATOR_ID INT
从会话中删除。
我要把它拿走 GROUP_ID
以及 GROUP_CREATOR_ID
并将其插入 M_GROUP_MEMBERS
表组件
GROUP_ID INT,
MEMBER_ID INT.
我的问题是我不能取自动增值 GROUP_ID
从 M_GROUPS
```
public void groupCreation(String groupname, int grouptype, int creator_id) {
DatabaseService oDatabaseService = new DatabaseService();
Connection connection = oDatabaseService.connect();
try {
Statement stmt = null;
stmt = connection.createStatement();
String sql;
sql = "INSERT INTO M_GROUPS( GROUP_NAME, GROUP_CREATOR_ID,
GROUP_TYPE, CREATION_TIME)"
+ " VALUES ('"
+ groupname
+ "','"
+ creator_id
+ "','"
+ grouptype + "',NOW())";
//stmt.executeUpdate(sql);
stmt.executeUpdate(sql);
} catch (SQLException se) {
se.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (connection != null)
connection.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
1条答案
按热度按时间sqxo8psd1#
使用
getGeneratedKeys()
你的方法Statement
对象来标识新的自动生成的值。迭代返回的ResultSet
对象以按批处理语句的顺序获取新生成的键值。更改:
收件人:
一旦在变量中有了这个自动生成的键值,就可以将它与其他sql语句一起使用,以存储在其他表中。
注意:呼叫
getGeneratedKeys()
可能抛出java.sql.SQLFeatureNotSupportedException
,如果您使用的jdbc驱动程序不支持此方法。