zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Java获取最后插入MySQL记录的自增ID值的3种方法

mysqlJAVA方法 获取 记录 ID 插入 自增
2023-06-13 09:15:04 时间

方法一:

复制代码代码如下:


Stringsql="INSERTINTOusers(username,password,email)VALUES(?,?,?);";
PreparedStatementpstmt=(PreparedStatement)conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);//传入参数:Statement.RETURN_GENERATED_KEYS
pstmt.setString(1,user.getUsername());
pstmt.setString(2,user.getPassword());
pstmt.setString(3,user.getEmail());
pstmt.executeUpdate();//执行sql                                                                            intautoInckey=-1;
ResultSetrs=pstmt.getGeneratedKeys();//获取结果  
if(rs.next()){
  autoIncKey=rs.getInt(1);//取得ID
}else{
  //throwanexceptionfromhere
}

方法二:

复制代码代码如下:


SELECTMAX(id)FROMtable

该方法在多线程等情况下可能会造成不正确。

方法三:

复制代码代码如下:
SELECTLAST_INSERT_ID()或者SELECT@@INDENTITY

这两个都是单个连接的,不存在所谓的两个人都同时插入,分不清的问题
唯一的问题是,如果一句INSERT插入多条,返回的是第一个ID