欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-16 18:16:22
方法一: 复制代码 代码如下:string sql = "insert into users (username,password,email) values (?,?,...

方法一:

复制代码 代码如下:

string sql = "insert into users (username,password,email) values (?,?,?);";
preparedstatement pstmt = (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                                                                             int autoinckey = -1;
resultset rs = pstmt.getgeneratedkeys(); //获取结果  
if (rs.next()) {
  autoinckey = rs.getint(1);//取得id
} else {
  // throw an exception from here
}

方法二:

复制代码 代码如下:

select max(id) from table

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

方法三:

复制代码 代码如下:

select last_insert_id() 或者 select @@indentity

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

上一篇:

下一篇: