怎么获取mysql 添加后的自增id,Java获取最后插入MySQL记录的自增ID值方法

方法一:

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

mysql插入数据后返回自增ID的方法,last_insert_id(),selectkey

mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得 ...

mysql函数之六:mysql插入数据后返回自增ID的方法,last_insert_id(),selectkey

mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得 ...

mysql获取刚插入(添加)记录的自动编号id

我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介 ...

mysql插入数据后返回自增ID的方法

mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的值呢? 方法一是使用la ...

mybatis获取批量插入的主键自增id

一.写一个实体类 public class UserInfo { private long userId; private String userAccount; private String use ...

数据库插入数据返回当前主键ID值方法

当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用.我们通常的做法有如下几种: 1. 先 select max(id) +1 ,然后将+1后的值作为主键插入数据库: 2. ...

mysql python pymysql模块 获取插入的最后一条数据的自增ID lastrowid()方法

调用游标下的lastrowid 可以获取插入之前的表里id字段存放到哪个自增id cursor.lastrowid mysql> select * from userinfo; +----+-- ...

【java】java获取对象属性类型、属性名称、属性值

java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...

简单实用SQL脚本Part:查找SQL Server 自增ID值不连续记录

原文:简单实用SQL脚本Part:查找SQL Server 自增ID值不连续记录 在很多的时候,我们会在数据库的表中设置一个字段:ID,这个ID是一个IDENTITY,也就是说这是一个自增ID.当并发 ...

随机推荐

(原)list中null的谨慎使用

今天在刷算法题时,新建了ArrayList变量,发现ArrayList与null结合起来使用时经常出错. 请查看如下几种例子, 1.new一个ArrayList<>类型的数据, impor ...

Date&lpar;&rpar; 及其 如何验证用户输入的日期是合法的

1.var someDate = new Date(Date.parse("May 25, 2004"));   <=>  var someDate = new Dat ...

关于insertBefore

insertBefore,看名字就是在某个元素前插入元素,但是其实它可以再文档任何元素强势插入. insertBefore用法: parent.insertBefore(newChild, refCh ...

springMVC 注解版

http://blog.csdn.net/liuxiit/article/details/5756115 http://blog.csdn.net/hantiannan/article/categor ...

Null指针

C++ Null 指针 C++ 指针 C++ 指针 在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯.赋为 NULL 值的指针被称为空指针. NULL ...

社交系统ThinkSNS&plus; 发布通知!

社交系统ThinkSNS 最新版本ThinkSNS+将于7月15日正式发布开源版本web+H5,同时发布Android APP和iOS APP.我们将告别内测阶段,正式对外发布. 没错,你们没看错,就 ...

extensions

extensions.blocklist.enabled

为Hexo Next主题添加分享及打赏功能

博客地址:往事亦如风的博客 要想先看打赏和分享功能效果,请移步我的博客 打赏功能 因为next主题自带打赏功能,所以我们只需要在next的主题配置文件中找到如下代码,image文件夹是我在blog/s ...

&lbrack;WPF&rsqb;启动参数

在App.xaml.cs中重写方法OnStartup protected override void OnStartup(StartupEventArgs e) { //e.Args为命令行参数 // ...

eclipse导入spring框架

新版spring官网寻找spring framework方法. http://zhidao.baidu.com/link?url=SozH26NGps060CJdFz9Mf-qiLFPZdN__xdp ...

Java实体自增ID是指在Java程序中使用MySQL数据库时,为实体对象自动生成唯一的自增ID。在数据库设计中,可以通过设置主键为自增ID的方式来实现。 首先,我们需要在MySQL数据库中创建一个表,并在表中定义一个主键字段,并设置为自增ID。在Java程序中,我们使用JDBC连接MySQL数据库进行操作。 通过JDBC连接MySQL数据库后,我们可以插入数据到表中并获取自增ID。在插入数据时,只需要插入自增ID以外的其他字段。当我们执行插入操作后,数据库会自动生成唯一的自增ID,并将其返回给我们。我们可以通过执行查询语句来获取最新生成的自增ID。 在Java程序中,我们可以使用PreparedStatement对象进行数据插入和查询操作。在插入数据时,我们可以使用getGeneratedKeys()方法获取最新生成的自增ID。这个方法会返回一个ResultSet对象,我们可以通过ResultSet的next()和getInt()方法获取实际的自增ID。 在使用自增ID时,我们可以将其赋给实体对象的ID属性,并在程序中进行存储、更新和删除等操作。这样可以确保每个实体对象都有唯一的自增ID,且不会出现冲突。 总的来说,Java实体自增ID是指在Java程序中使用MySQL数据库时,通过设置表的主键为自增ID的方式,为实体对象生成唯一的自增ID。通过JDBC连接数据库,我们可以插入数据获取最新生成的自增ID,以便在程序中进行操作。这样可以确保每个实体对象都有唯一的自增ID,从而方便我们进行数据存储和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值