mybatis insert 返回自增主键的实现示例

 更新时间:2024年06月27日 10:20:56   作者:薄荷街的兔比先生  
mybatis 在新增之后怎么也获取不到自增主键,本文主要介绍了mybatis insert 返回自增主键的实现示例,具有一定的参考价值,感兴趣的可以了解一下

需求

mybatis 在新增之后怎么也获取不到自增主键,通过不段的摸索原来是姿势不对,记录一下希望能帮助下一位采坑的同学

方式一

映射方式

<-- xml 映射的方式 -->
<insert id="insert" parameterType="com.kebi.User" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
	INSERT INTO user (
		username, password
	) VALUES (
		#{username}, #{password}
	)
</insert>
属性描述
useGeneratedKeys为 true 则返回主键的值
keyProperty实体类中属性名
keyColumn数据库主键字段名 如果和实体属性名一样可以不用写
private UsertMapper userMapper;

User user = new User();
user.setUserName("name");
user.setPassWord("123")

userMapper.insert(user);

System.out.println("获取自增主键:"+ user.getId());

方式二

selectKey 的方式

<-- xml 映射的方式 -->
<insert id="INSERT" parameterType="com.kebi.User">
    <selectKey resultType="int" order="AFTER" keyProperty="id" keyColumn="id">
        SELECT LAST_INSERT_ID()
    </selectKey>
    INSERT INTO users (
    	username, password
    ) VALUES (
    	#{username}, #{password}
    )
</insert>
属性描述
resultType结果类型
keyProperty实体类中属性名
keyColumn数据库主键字段名
order这可以被设置为 BEFORE 或 AFTER。如果设置为 BEFORE,那么它会首先选择主键,设置 keyProperty 然后执行插入语句。如果设置为 AFTER,那么先执行插入语句,然后是 selectKey 元素 - 这和像 Oracle 的数据库相似,在插入语句内部可能有嵌入索引调用。
statementTypeMyBatis 支持 STATEMENT、PREPARED 和 CALLABLE 语句的映射类型,分别代表 PreparedStatement 和 CallableStatement 类型

到此这篇关于mybatis insert 返回自增主键的实现示例的文章就介绍到这了,更多相关mybatis insert 返回自增主键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Java中RedisUtils工具类的使用

    Java中RedisUtils工具类的使用

    本文主要介绍了Java中RedisUtils工具类的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 二叉排序树的实现与基本操作

    二叉排序树的实现与基本操作

    二叉排序树又称二叉查找树。本文主要对二叉排序树的实现与基本操作进行详细介绍,以下代码实现了:1、二叉树的构建;2、二叉树的中、前、后、层序遍历;3、二叉树中结点的最大距离。下面就跟着小编一起来看下吧
    2016-12-12
  • JavaWeb实现文件上传下载功能实例详解

    JavaWeb实现文件上传下载功能实例详解

    这篇文章主要介绍了JavaWeb中的文件上传和下载功能的实现,在开发中,文件上传和下载功能是非常常用的功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 如何使用Spring AOP优雅实现横切逻辑复用

    如何使用Spring AOP优雅实现横切逻辑复用

    本文详细介绍了Spring AOP的核心概念、在Spring Boot中的使用方式、实现原理及多切面执行顺序,AOP作为面向对象编程的补充,通过横切逻辑的分离,能有效简化日志、事务、权限等功能的开发,提升代码的可维护性和复用性,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • SpringBoot线上环境彻底关闭Swagger-UI的方式

    SpringBoot线上环境彻底关闭Swagger-UI的方式

    这篇文章主要给大家介绍了SpringBoot线上环境彻底关闭Swagger-UI的方式,文中给出了详细的代码示例供大家参考,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-12-12
  • Mybatis MappedStatement类核心原理详解

    Mybatis MappedStatement类核心原理详解

    这篇文章主要介绍了Mybatis MappedStatement类,mybatis的mapper文件最终会被解析器,解析成MappedStatement,其中insert|update|delete|select每一个标签分别对应一个MappedStatement
    2022-11-11
  • Redis内存数据库示例分析

    Redis内存数据库示例分析

    Redis本身的内容比较复杂。如果你上来,你应该研究一个细节点,比如连接池和数据结构。虽然可以直接了解某一点的详细来源内容,甚至尽快解决一些意外,但是容易淹没在失眠的细节中,整体控制不了Redis
    2022-12-12
  • Spring Boot中Redis序列化优化配置详解

    Spring Boot中Redis序列化优化配置详解

    在使用Spring Boot集成Redis时,序列化方式的选择直接影响数据存储的效率和系统兼容性,默认的JDK序列化存在可读性差、存储空间大等问题,本文将深入探讨如何优化Redis序列化配置,感兴趣的朋友跟随小编一起看看吧
    2025-05-05
  • java如何将Object数组转换为指定类型数组

    java如何将Object数组转换为指定类型数组

    这篇文章主要介绍了java如何将Object数组转换为指定类型数组,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • springMvc全局异常的实现

    springMvc全局异常的实现

    大家好,本篇文章主要讲的是springMvc全局异常的实现,感兴趣的同学赶紧来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02

最新评论