广告
返回顶部
首页 > 资讯 > 精选 >Mybatis执行插入语句后并返回主键ID问题怎么解决
  • 523
分享到

Mybatis执行插入语句后并返回主键ID问题怎么解决

2023-07-05 09:07:00 523人浏览 薄情痞子
摘要

这篇文章主要讲解了“mybatis执行插入语句后并返回主键ID问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mybatis执行插入语句后并返回主键ID问题怎么解决”吧!1、MyS

这篇文章主要讲解了“mybatis执行插入语句后并返回主键ID问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mybatis执行插入语句后并返回主键ID问题怎么解决”吧!

1、MySQL数据库设置ID自增情况

 <insert id="insertUser" parameterType="com.crush.mybatisplus.entity.User">     INSERT  INTO tb_user (username,passWord) VALUES(#{username},#{password});     <selecTKEy resultType="java.lang.Long" order="AFTER" keyProperty="id">         SELECT LAST_INSERT_ID()     </selectKey> </insert>

(1)这里设置的Mysql的主键是自增的,SELECT LAST_INSERT_ID()返回的是最后一个ID值的意思。

(2)传入的参数必须为对象,不能为string,int之类的单个参数

(3)order属性,取值范围BEFORE/ AFTER,指定是在insert语句前还是后执行selectKey操作。AFTER一般用于mysql自增的情况下,BEFORE一般用于自定义的ID的获取。

(4)keyProperty属性,默认值unset,用于设置getGeneratedKeys方法或 selectKey子元素返回值将赋值到领域模型的哪个属性中,也就是实体类中,对应数据库的主键id。

(5)最后在实体类中,要有主键的get与set方法,满足后,在impl层controller层,直接实体类.getId()即可获取本次插入后的主键ID,返回前端即可。

示例:

@Override public Long insert(User user) {     return  userMapper.insertUser(user)>0?user.getId():null; }

2、使用UUID自增主键

<insert id="insertUser2" parameterType="com.crush.mybatisplus.entity.User">     <selectKey keyProperty="id" order="BEFORE" resultType="String">         select uuid()     </selectKey>     INSERT INTO tb_user (id,username,password) VALUES(#{id},#{username},#{password}); </insert>

3、mybatis-plus在执行插入语句后返回自定义ID

可以直接使用mybatis-plus的save方法,或者mapper层的insert方法

它都会将返回的结果自动填充进你映射的实体类,从而可以直接获取到你的数据

 @PostMapping("/add3") public Object add3(@RequestBody User user){     return tbUserService.save(user)==true?user.getId():"插入失败"; }

Mybatis执行插入语句后并返回主键ID问题怎么解决

还可以直接将User打印出来看一下:

 @PostMapping("/add3") public Object add3(@RequestBody User user){     tbUserService.save(user);     System.out.println("执行完插入后的User:"+user);     return user.getId(); }

执行完插入后的

User:User(id=890909294458048512, username=123456, password=123456, deleted=0, createTime=2021-09-24T10:35:36.873908700, updateTime=2021-09-24T10:35:36.873908700) 

还可以使用注解方式,不过注解那种就是将上面mybatis的方法搬到注解上了

 @Insert(value = "INSERT INTO t_XXXX" +         "XXX,XXX,XXX " +         "VALUES (XXX,XXX,XXX)") @SelectKey(statement="select LAST_INSERT_ID()",keyProperty = "id",before = false,resultType = Long.class) Integer testInsert1(MessageMould messageMould);

感谢各位的阅读,以上就是“Mybatis执行插入语句后并返回主键ID问题怎么解决”的内容了,经过本文的学习后,相信大家对Mybatis执行插入语句后并返回主键ID问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Mybatis执行插入语句后并返回主键ID问题怎么解决

本文链接: https://www.lsjlt.com/news/350927.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mybatis执行插入语句后并返回主键ID问题怎么解决
    这篇文章主要讲解了“Mybatis执行插入语句后并返回主键ID问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mybatis执行插入语句后并返回主键ID问题怎么解决”吧!1、MyS...
    99+
    2023-07-05
  • Mybatis执行插入语句后并返回主键ID问题
    目录1、MySQL数据库设置ID自增情况2、使用UUID自增主键3、mybatis-plus在执行插入语句后返回自定义ID总结我们知道JDBC可以实现插入语句后返回主键Id,那myb...
    99+
    2023-03-07
    Mybatis执行插入语句 Mybatis返回主键ID Mybatis插入语句
  • 详解mybatis插入数据后返回自增主键ID的问题
    1.场景介绍: ​开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知...
    99+
    2022-11-12
  • Mybatisplus插入后返回元素id的问题怎么解决
    这篇文章主要讲解了“Mybatisplus插入后返回元素id的问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mybatisplus插入后返回元素id的问题怎么解决”吧!mybat...
    99+
    2023-07-05
  • SQL一些语句执行后出现异常不会回滚的问题怎么解决
    本篇内容主要讲解“SQL一些语句执行后出现异常不会回滚的问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL一些语句执行后出现异常不会回滚的问题怎么解决”吧!SQL一些语句执行后出现...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作