使用mybatis执行insert操作时,需要返回自增主键
网上清一色的答案,
useGeneratedKeys设置为true
keyProperty设置为实体类主键字段,如下:
<insert id="add" parameterType="Entity" useGeneratedKeys="true" keyProperty="EntityId">
insert into entity(...) values(...)
</insert>
我试了好多次都不行,最后看了下面这篇文档:
http://www.cnblogs.com/fsjohnhuang/p/4078659.html
我看到了最重要的一菊花:
注意:mapper接口返回值依然是成功插入的记录数,但不同的是主键值已经赋值到领域模型实体的id中了。
希望遇到相同问题的人可以看到我这篇博客,少走一些弯路。
好了,可以继续愉快的写代码了o(^▽^)o
分享到:
相关推荐
在MyBatis中,处理自增主键是一个常见的需求,特别是在Oracle和MySQL这两个数据库中。Oracle通常使用Sequence来生成自增主键,而MySQL则直接通过表定义的自增属性来处理。以下将详细讲解这两种数据库在MyBatis中的...
在使用MyBatis进行数据库操作时,有时我们需要在插入数据后获取自动生成的主键ID,这在处理自增主键的场景下尤其常见。在MySQL数据库中,自增主键通常用于标识每条记录的独特性,而在插入新记录后,数据库会自动为这...
在MyBatis这个流行的Java持久层框架中,处理自增主键的值通常涉及到插入数据后如何获取新生成的ID。下面将详细阐述MyBatis如何实现这一功能。 1. **自增主键的原理**: 自增主键通常在关系型数据库如MySQL、...
### Spring MVC + Spring + MyBatis + Maven + MySQL 环境搭建详解 #### 一、概述 在软件开发领域,尤其是Java Web开发中,**Spring MVC + Spring + MyBatis + Maven + MySQL**组合是一种非常流行的开发模式。本文...
在MyBatis 3.2.6版本中,主要提供了两种方式,这两种方式都适用于MySQL 5.5数据库,因为MySQL支持返回自增主键的特性。下面是这两种方法的详细解释: 方法1:利用`useGeneratedKeys`和`keyProperty`属性 在XML映射...
本文将详细介绍 MyBatis 在 insert 插入操作时返回主键 ID 的配置,包括 MySQL 和 Oracle 两个数据库的用法。 MySQL 用法 在 MySQL 中,MyBatis 提供了一个简单的配置来返回插入的主键 ID。我们可以在 insert 语句...
本文将详细讲解如何在MyBatis中利用MySQL的自增主键功能,以便在插入新记录后获取生成的唯一ID。 首先,我们要明白MySQL中的自增主键。自增主键是一种特殊的字段类型(通常是`INT`),每当插入新的记录时,其值会...
Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例 Mybatis 是一个基于 Java 的持久层框架,它提供了对数据库的访问和操作的功能。今天,我们将分享一个关于 Mybatis 插入一条或批量插入 返回带有自增长...
总之,Mybatis的`useGeneratedKeys`属性提供了方便的方式来获取自增主键,但当结合`ON DUPLICATE KEY UPDATE`语句使用时,需要谨慎处理返回结果,以确保正确地处理批量插入和更新操作。理解JDBC规范和数据库特定的...
总的来说,Java开发中使用MyBatis与Oracle配合进行批量导入时,关键在于如何构造正确的SQL语句以适应Oracle的特性,如使用序列生成主键,以及正确处理并发和事务。通过DAO、Service和Controller层的合理分工,可以...
采用两个版本第一个版本:springboot+mybatis+dubbo+rocketmq+mysql+redis等。第二个版 MySQL 是一款广受欢迎的开源关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现隶属于美国甲骨文公司(Oracle)。自...
在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点 主键自增:1、自增ID容易被爬虫遍历数据。2、分表分库会有ID冲突。 UUID: 1、太长,并且有索引碎片,索引多占用空间的问题 2、无序。 ...
Java基于MySQL的学生管理系统是一种常见的应用开发案例,它利用Java编程语言和MySQL数据库来实现对学生信息的高效管理和操作。在这个系统中,Java作为后端开发语言,负责处理业务逻辑和数据库交互,而MySQL作为关系...
在MyBatis中,当你执行一个插入(insert)操作时,通常默认情况下,MyBatis不会返回新插入记录的主键值,而是返回插入的记录条数。然而,在某些业务场景下,我们可能需要获取到新插入记录的主键,以便进行后续的操作...
在 Oracle 数据库中,与许多其他关系型数据库系统不同,它并没有内置的自动自增字段类型,例如 MySQL 的 `AUTO_INCREMENT` 或 SQL Server 的 `IDENTITY`。但是,Oracle 提供了序列(Sequences)和触发器(Triggers)...
在Spring Boot项目中,整合MyBatis并利用MySQL实现主键UUID是一种常见的需求,尤其是在分布式系统中,为了保证数据的一致性和唯一性。UUID(Universally Unique Identifier)是一种全局唯一的标识符,它由128位数字...
然后,`ON DUPLICATE KEY UPDATE`部分在遇到主键冲突时执行更新操作。在MySQL中,当插入的行违反了唯一约束(例如,`idcard`字段已经存在),这个部分的语句将会执行。这里更新了`pname`, `idcard`, `gender`, 和 `...
本资源"通用mybatis-MySQL增删改查CRUD源码"旨在帮助开发者避免重复编写繁琐的SQL语句和Mapper接口,提高开发效率。以下是关于这个主题的详细知识讲解。 **1. CRUD操作** CRUD是创建(Create)、读取(Retrieve)、更新...
Mybatis-plus 实现主键自增和自动注入时间的示例代码 Mybatis-plus 是一个基于 Mybatis 的增强型 ORM 框架,它提供了许多实用的功能来简化数据库操作。在本文中,我们将通过示例代码,介绍如何使用 Mybatis-plus ...
总之,当在Oracle数据库中使用MyBatis进行批量插入时,务必注意适应Oracle的特定语法,如使用`INSERT ALL`,避免使用MySQL等其他数据库系统适用的语法,如逗号分隔的`VALUES`列表。同时,确保正确处理主键生成逻辑,...