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

 更新时间:2013年08月09日 15:27:38   作者:  
这篇文章介绍了Java获取最后插入MySQL记录的自增ID值的3种方法,有需要的朋友可以参考需要

方法一:

复制代码 代码如下:

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

相关文章

  • Java内存各部分OOM出现原因及解决方法(必看)

    Java内存各部分OOM出现原因及解决方法(必看)

    下面小编就为大家带来一篇Java内存各部分OOM出现原因及解决方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • java实现文件切片和合并的代码示例

    java实现文件切片和合并的代码示例

    这篇文章主要介绍了java实现文件切片和合并的代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Java并发工具类Exchanger的相关知识总结

    Java并发工具类Exchanger的相关知识总结

    今天给大家带来的文章是Java工具类Exchanger的相关知识总结,文中有非常详细的介绍及代码示例,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-06-06
  • Spring中@Autowired与@Resource的区别详析

    Spring中@Autowired与@Resource的区别详析

    @Autowired与@Resource都可以用来装配bean,都可以写在字段上,或写在setter方法上,下面这篇文章主要给大家介绍了关于Spring中@Autowired与@Resource区别的相关资料,需要的朋友可以参考下
    2021-10-10
  • java线性表的存储结构及其代码实现

    java线性表的存储结构及其代码实现

    这篇文章主要为大家详细介绍了Java数据结构学习笔记第一篇,线性表的存储结构及其代码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • springboot项目访问图片的3种实现方法(亲测可用)

    springboot项目访问图片的3种实现方法(亲测可用)

    本文主要介绍了springboot项目访问图片的3种实现方法,通过springboot项目访问除项目根目录之外的其它目录的图片,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • java中实现递归计算二进制表示中1的个数

    java中实现递归计算二进制表示中1的个数

    这是一个很有意思的问题,是在面试中特别容易被问到的问题之一,解决这个问题第一想法肯定是一位一位的去判断,是1计数器+1,否则不操作,跳到下一位,十分容易,编程初学者就可以做得到!
    2015-05-05
  • Eclipse操作SVN时中断锁定,文件的解锁方法

    Eclipse操作SVN时中断锁定,文件的解锁方法

    这篇文章主要介绍了Eclipse操作SVN时中断锁定,文件的解锁方法,需要的朋友可以参考下
    2014-08-08
  • Kotlin基础教程之操作符与操作符重载

    Kotlin基础教程之操作符与操作符重载

    这篇文章主要介绍了Kotlin基础教程之操作符与操作符重载的相关资料,需要的朋友可以参考下
    2017-05-05
  • MyBatis中的配置文件详解

    MyBatis中的配置文件详解

    在 MyBatis 中,配置文件分为 全局配置文件(核心配置文件)和映射配置文件,本文给大家介绍MyBatis中的配置文件相关知识,感兴趣的朋友一起看看吧
    2023-10-10

最新评论