`
yhailj
  • 浏览: 35048 次
  • 性别: Icon_minigender_1
  • 来自: 浮云
文章分类
社区版块
存档分类
最新评论

获取最新插入的记录主键

阅读更多
当向数据库插入一条新记录后通常都需要获取新记录的主键.

而每种数据库的主键生成策略都不同.

一般来讲, 如果让数据库来维护主键, MySQL 和 SQL Server 为自动增长, Oracle 使用序列

若使用 Hibernate , 其 save() 方法会返回一个 Serializable. 此值为 持久化标识(identifier) 即主键对应的属性.
merge() 方法将 持久化的对象 整个返回.

若使用 jdbc , 可以使用 Statement 的 getGeneratedKeys() 方法获取最新插入数据的结果集.
但要保证一点,
必须与 insert 语句在同一个 Connection 中. 具体情况查看 Statement API 帮助的 executeUpdate(sql, Statement.RETURN_GENERATED_KEYS) 和 getGeneratedKeys() 方法说明;

若数据库驱动程序不支持上面的方法. 那就只能使用数据库本身的方法了

统计了一下:

Oracle      SELECT sequence.currval FROM DUAL
MySQL       SELECT LAST_INSERT_ID()
SqlServer   SELECT SCOPE_IDENTITY()或SELECT @@IDENTITY

PostgreSQL  SELECT nextval('<TABLE>_SEQ')
DB2         IDENTITY_VAL_LOCAL()
Informix    SELECT dbinfo('sqlca.sqlerrd1') FROM <TABLE>
Sybase      SELECT @@IDENTITY
HsqlDB      CALL IDENTITY()
Cloudscape  IDENTITY_VAL_LOCAL()
Derby       IDENTITY_VAL_LOCAL()


使用以上语句查询时, 必须保证与 插入语句在同一个 Connection 中
1
0
分享到:
评论

相关推荐

    jdbc 插入记录并返回自增主键值

    总的来说,Java中的JDBC提供了一种灵活且强大的方式来处理数据库操作,包括插入记录并获取自增主键。正确地使用预编译的`PreparedStatement`可以提高代码的可读性和安全性,同时,通过设置`RETURN_GENERATED_KEYS`...

    利用Java的MyBatis框架获取MySQL中插入记录时的自增主键

    总结起来,通过在MyBatis的Mapper XML文件中配置`useGeneratedKeys`和`keyProperty`,或者使用`&lt;selectKey&gt;`标签,我们可以轻松地在Java应用中获取MySQL插入记录时自动生成的主键值。这种方式不仅简化了编程,也提高...

    mybatis获取自增主键的值

    在MyBatis这个流行的Java持久层框架中,处理自增主键的值通常涉及到插入数据后如何获取新生成的ID。下面将详细阐述MyBatis如何实现这一功能。 1. **自增主键的原理**: 自增主键通常在关系型数据库如MySQL、...

    使用SQL Server 获取插入记录后的ID(自动编号)

    在SQL Server中,获取插入记录后的ID(通常指的是自动编号字段的值)是常见的操作,尤其是在需要关联新插入数据与其他表记录的情况下。本篇文章主要介绍了几种在SQL Server中获取自增ID的方法,针对SQL Server 2000...

    mybatis 获取mysql插入记录的自增长字段值.pdf

    总之,通过MyBatis的`useGeneratedKeys`和`keyProperty`特性,我们可以方便地在插入记录后获取自增长字段的值,从而简化了数据库操作的复杂性,提高了代码的可读性和可维护性。在实际开发中,根据具体需求,还可以...

    获取插入记录ID(2.0)

    在本篇文章中,我们将深入探讨如何在C# WinForm应用程序中获取新插入记录的标识号,这在跟踪和管理数据时非常关键。 在关系型数据库系统中,每条记录通常都有一个唯一的标识符,被称为主键或自动增长字段。在SQL ...

    MyBatis+MySQL 返回插入的主键ID的方法

    在MySQL数据库中,自增主键通常用于标识每条记录的独特性,而在插入新记录后,数据库会自动为这条记录分配一个唯一的主键值。MyBatis提供了方便的方法来获取这个插入后的主键ID,下面我们将详细讲解如何实现这一功能...

    Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例

    Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例 Mybatis 是一个基于 Java 的持久层框架,它提供了对数据库的访问和操作的功能。今天,我们将分享一个关于 Mybatis 插入一条或批量插入 返回带有自增长...

    ASP技术常遇问题解答-如何得到插入一条记录后最新的ID?.zip

    当使用DataAdapter填充DataSet或DataTable时,可以设置`AcceptChangesDuringFill`属性为`false`,然后在插入新记录后调用`GetChanges`,这将返回一个只包含新插入记录的DataTable,从中获取新ID。 7. **存储过程**...

    mysql的插入问题 怎么获得自动增长的ID

    4. **通过Java程序使用JDBC获取刚插入记录的ID** #### 一、理解自动增长ID的工作原理 在MySQL中,通过设置字段为`AUTO_INCREMENT`属性来实现自动增长的ID。当向表中插入新记录时,如果该记录的ID字段未指定值,则...

    mycat 主键自增代码

    AUTO_INCREMENT 策略可能导致额外的网络通信开销,因为每个新插入的记录都需要获取下一个主键值。为了提高性能,可以考虑使用 SEQUENCE 策略,预先批量获取一批主键,然后在本地缓存并分配给多条记录。 7. 监控与...

    支持主键自增的数据库获取主键值.zip

    在某些数据库中,如MySQL,可以使用`LAST_INSERT_ID()`函数来获取最近插入记录的自增主键值。但这种方式并不适用于所有数据库,因此MyBatis提供了更通用的解决方案,即通过JDBC的`Statement.getGeneratedKeys()`方法...

    Mybatis实现插入数据后返回主键过程解析

    一、获取新添加记录主键字段值 在MyBatis中,添加操作返回的是记录数并非记录主键id。如果需要获取新添加记录的主键值,需要在执行添加操作之后,直接读取Java对象的主键属性。例如: ```java Integer rows = ...

    Mybatis返回插入主键id的方法

    在Mybatis中,当执行插入操作时,有时我们需要获取新插入记录的主键ID,以便进行后续的操作。Mybatis提供了一种便捷的方式,允许我们在插入数据后返回自动生成的主键值。以下将详细介绍如何在Mybatis中实现这一功能...

    java使用jdbc插入信息时获取id1

    在Java编程中,当我们使用Java Database Connectivity (JDBC) API来执行插入操作时,有时我们需要获取新插入记录的自增主键值。标题"java使用jdbc插入信息时获取id1"指的是在Java程序中,通过JDBC执行SQL插入语句后...

    详解Java MyBatis 插入数据库返回主键

    `&lt;selectKey&gt;`标签定义了一个SQL查询,用于获取新插入记录的主键。在本例中,`SELECT LAST_INSERT_ID()`是MySQL获取最后插入记录自增ID的语法。`order="AFTER"`表示先执行插入语句,然后执行查询。配置如下: ```...

    SQL获取刚插入的记录的自动增长列ID的值

    在本例中,我们关注的是如何在SQL中获取刚插入记录的自动增长列(通常是主键)的值。我们将探讨SQL Server 2000和SQL Server 2005及以上版本的不同处理方式,以及如何在C#环境中使用这些方法。 首先,我们创建了一...

    mybatis返回插入的id1

    在 MyBatis 框架中,当我们执行一个插入(insert)操作时,有时需要获取新插入记录的自增主键值,例如数据库中的唯一标识 ID。MyBatis 提供了方便的功能来实现这一需求,这主要涉及到 `keyProperty` 和 `...

    Kettle 合并记录和Merge Join组件实现数据增量迁移(数据同步比插入更新快

    在实际操作中,为了实现数据增量迁移,我们首先需要设置一个“获取最新时间戳”的步骤,以便确定上次迁移后数据库中发生的变更。然后,我们可以使用“表输入”组件从源数据库读取这些变更数据,并利用“过滤行”组件...

    MyBatis获取插入记录的自增长字段值(ID)

    MyBatis获取插入记录的自增长字段值(ID)详解 在MyBatis中,获取插入记录的自增长字段值是一个常见的问题,特别是在使用自动增长字段的数据库管理系统中。下面,我们将详细介绍MyBatis获取插入记录的自增长字段值的...

Global site tag (gtag.js) - Google Analytics