<insert id="insert" parameterType="cn.***.beans.LogObject" >
<selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id">
SELECT LOGS_SEQ.nextval AS ID FROM DUAL
</selectKey>
INSERT INTO S_T_LOGS (
ID,
USER_ID,
USER_NAME,
USER_IP,
OPERATION_TIME,
DESCRIPTION,
RESOURCE_ID)
VALUES (
#{id},
#{userId},
#{userName},
#{userIp},
#{operationTime},
#{description},
#{resourceId})
</insert>
orcale中。传进来的参数LogObject对象里的id字段就会被赋值成sequence的值。这样就达到返回刚插入记录的主键值的效果。
<insert id="insert" parameterType="cn.***.beans.LogObject" >
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID() AS ID
</selectKey>
INSERT INTO S_T_LOGS (
ID,
USER_ID,
USER_NAME,
USER_IP,
OPERATION_TIME,
DESCRIPTION,
RESOURCE_ID)
VALUES (
#{id},
#{userId},
#{userName},
#{userIp},
#{operationTime},
#{description},
#{resourceId})
</insert>
mysql中。通过LAST_INSERT_ID() 获得刚插入的自动增长的id的值。
注意:selectKey中order属性的值是不同的,BEFORE先选择主键,设置keyProperty的值然后执行插入语句。
AFTER是先执行插入语句,然后执行selectKey。
分享到:
相关推荐
在 MyBatis 框架中,当我们执行一个插入(insert)操作时,有时需要获取新插入记录的自增主键值,例如数据库中的唯一标识 ID。MyBatis 提供了方便的功能来实现这一需求,这主要涉及到 `keyProperty` 和 `...
当主键类型为整型并且设置了自增属性时,MybatisPlus会在插入数据后自动返回主键值。有两种方式可以获取这个值: 1. 使用`@TableId`注解:在实体类中,你可以通过在主键字段上添加`@TableId`注解来声明主键,并指定...
MyBatis插入数据返回主键的介绍 MyBatis是一个流行的持久层框架,它提供了许多实用的功能,包括插入数据返回主键的功能。在本文中,我们将详细介绍MyBatis插入数据返回主键的实现方法。 Service层实现 在Service...
在MySQL数据库中,自增主键通常用于标识每条记录的独特性,而在插入新记录后,数据库会自动为这条记录分配一个唯一的主键值。MyBatis提供了方便的方法来获取这个插入后的主键ID,下面我们将详细讲解如何实现这一功能...
Mybatis实现插入数据后返回主键过程解析 Mybatis是一个基于Java的持久层框架,它提供了一个灵活的方式来访问和操作...MyBatis提供了多种方式来实现插入数据后返回主键值,开发者可以根据实际需求选择合适的方法。
**关于MyBatis插入数据的常见问题** 在实现插入数据并返回主键时,可能会遇到这样一个陷阱:在自定义插入方法时,如果错误地返回了SqlSession的自增ID,而不是正确地通过实体类传递,可能会导致看似插入成功但实际...
在Mybatis中,当执行插入操作时,有时我们需要获取新插入记录的主键ID,以便进行后续的操作。Mybatis提供了一种便捷的方式,允许我们在插入数据后返回自动生成的主键值。以下将详细介绍如何在Mybatis中实现这一功能...
在MybatisPlus中,插入数据并获取对象的主键值是一个常见的需求,特别是在需要跟踪新插入记录的唯一标识时。MybatisPlus提供了一种简便的方式来实现这一功能。本篇文章将详细解释如何在MybatisPlus中实现这一操作,...
`useGeneratedKeys="true"`指示MyBatis使用数据库生成的主键值。这通常适用于那些设置为自动增长的字段,比如MySQL中的`AUTO_INCREMENT`字段。在执行插入操作后,MyBatis会自动获取并设置到对应Java对象的属性中。 ...
这样MySQL会在插入数据时自动分配并设置主键值,但同样不会将这个值返回给插入的对象。 3. **插入后获取自增主键值** 如果需要在插入数据后获取自增的主键值,MyBatis提供了`<selectKey>`元素来实现这一功能。这...
在批量插入时,MyBatis 3.3.1能够根据数据库的返回值(通常是受影响的行数或生成的ID)来获取这些主键值,并将它们映射回Java对象,以便于后续的业务逻辑处理。 为了实现这个功能,开发者需要在Mapper接口的方法上...
`order="AFTER"` 表示在执行完插入操作后获取主键值,如果数据库不支持自增主键,可以改为`order="BEFORE"`,让MyBatis生成一个唯一的ID。 ```xml SELECT LAST_INSERT_ID() ``` 接下来是实际的插入语句,使用`...
总结来说,当使用 MyBatis Plus 插入数据时遇到主键未返回的问题,应检查以下几点: 1. 确保实体类中的主键字段已正确标注为自增类型。 2. 确认 Dao 接口只使用 MP 提供的通用方法,避免自定义与 MP 冲突的方法。 3....
在对应的Java代码中,当你调用`sqlSession.insert("insertUser", user)`方法插入一条记录后,`user.getId()`就会返回数据库自动生成的主键值。这是因为MyBatis通过`useGeneratedKeys`和`keyProperty`属性与数据库...
这意味着在执行多条插入语句时,MyBatis可以一次性处理,并且能够返回所有新生成的主键值,这对于数据批量处理场景非常实用。 3.4.0版本的发布带来了更多优化和新功能,例如: - 支持Java 8的新特性,如日期时间...
在使用 MyBatis 进行数据插入时,需要使用 `selectKey` 元素来获取插入后的主键值。`selectKey` 元素可以在插入语句之前或之后执行,具体的实现方法取决于所使用的数据库系统。 对于 Oracle 数据库,使用 `select...
在选择MyBatis-Plus查询返回类型时,应根据实际需求权衡。对于简单的单表查询,返回实体对象通常更合适,因为它提供了更好的代码可读性和自动映射功能。而对于复杂查询,如多表联合查询或需要特定字段组合的情况,...
在处理数据插入时,如果数据库(如MySQL)支持自动生成主键,MyBatis提供了自动获取新插入数据主键值的功能。例如,使用`useGeneratedKeys="true"`和`keyProperty="id"`属性,可以获取到插入后生成的主键值。 对于...
3. ****:定义插入数据的 SQL 语句,可以返回自动生成的主键值。 4. ****:定义更新数据的 SQL 语句。 5. ****:定义删除数据的 SQL 语句。 【MyBatis注解】 除了 XML 映射文件,MyBatis 也支持在实体类和 DAO ...
总结起来,通过在MyBatis的Mapper XML文件中配置`useGeneratedKeys`和`keyProperty`,或者使用`<selectKey>`标签,我们可以轻松地在Java应用中获取MySQL插入记录时自动生成的主键值。这种方式不仅简化了编程,也提高...