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多线程教程之如何使用线程池详解

    java多线程教程之如何使用线程池详解

    这篇文章主要给大家介绍了关于java多线程之如何使用线程池的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • IDEA中Directory创建多级目录的实现

    IDEA中Directory创建多级目录的实现

    本文主要介绍了IDEA中Directory创建多级目录的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例

    微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例

    本篇文章主要介绍了微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • MyBatis持久层框架的用法知识小结

    MyBatis持久层框架的用法知识小结

    MyBatis 本是apache的一个开源项目iBatis,接下来通过本文给大家介绍MyBatis持久层框架的用法知识小结,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-07-07
  • java简单模仿win10计算器

    java简单模仿win10计算器

    这篇文章主要为大家详细介绍了java简单模仿win10计算器de,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • Java UUID 五个版本的区别及使用场景小结

    Java UUID 五个版本的区别及使用场景小结

    在Java中,UUID是一个128位的唯一标识符,广泛应用于生成唯一标识符、分布式系统唯一键等场景,Java提供的java.util.UUID类支持五种UUID版本,每种具有不同的生成方式和使用场景,本文就来介绍一下如何使用,感兴趣的可以了解一下
    2024-11-11
  • Spring Cloud Stream如何实现服务之间的通讯

    Spring Cloud Stream如何实现服务之间的通讯

    这篇文章主要介绍了Spring Cloud Stream如何实现服务之间的通讯,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 解决maven clean报错:Failed to delete xxxxx\target\xxxx.jar

    解决maven clean报错:Failed to delete xxxxx\t

    这篇文章主要介绍了解决maven clean报错:Failed to delete xxxxx\target\xxxx.jar问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • SpringCloud Eureka实现服务注册与发现

    SpringCloud Eureka实现服务注册与发现

    Eureka是一种基于REST(具像状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移。本文记录一个简单的服务注册与发现实例。感兴趣的小伙伴们可以参考一下
    2019-01-01
  • SpringMVC中Model与Session的区别说明

    SpringMVC中Model与Session的区别说明

    这篇文章主要介绍了SpringMVC中Model与Session的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12

最新评论