MyBatis插入数据返回主键的介绍
作者:Haozz_1994 发布时间:2023-10-26 03:15:21
标签:mybatis,插入数据,返回主键
Service层:
public int addUser(UserDomian user){
int i = userMapper.insert(user);
}
xml:
<insert id="insert" parameterType="....UserDomain">
insert into t_user(user_name,password)
values
(#{userName},#{password})
</insert>
这样userMapper的insert方法成功插入之后返回值为影响行数,也就是1。而且插入之后userDomain实体类的userId为null。
我们都知道在MyBatis中,xml的insert语句中将useGeneratedKeys指定为true,那么返回之后就会得到新增的主键值,具体写法如下:
<insert id="insert" parameterType="....UserDomain" useGeneratedKeys="true" keyProperty="userId">
insert into t_user(user_name,password)values(#{userName},#{password})
</insert>
前提条件是对应的mysql表中id必须是自增的,并且对应的UserDomain实体类中有get、set方法,而且只适用于与mySql数据库,Oracle数据库不支持。
但是这样设置之后,在service层打断点,插入成功之后UserDomain确实和之前不一样,他的userId不再是null了,而是具体的主键id值,但是usetMapper的insert方法的返回值依然是1,也就是插入的影响行数。
也就是说,这样设置,mapper接口返回值依然是成功插入的记录数,但不同的是主键值已经赋值到领域模型实体的id中了。
来源:https://blog.csdn.net/hz_940611/article/details/80773139


猜你喜欢
- 在使用多线程过程中,可能会遇到在一些情况下必须等待子线程全部执行结束后主线程才进行下一步,做法如下: //在使用多线程过程中,可能会遇到在一
- Android 活动条ActionBar的详解图一 图二 图三 图四 图五 ActionBar其提供的功能总结图一使用ActionB
- BeanPostProcessor 的接口定义,可以实现提供自己的实例化逻辑,依赖解析逻辑等,也可以以后在Spring容器实例化完毕,配置和
- 听老师说,在以后的学习中大部分的异常都是空指针异常。所以抽点打游戏的时间来查询一下什么是空指针异常一:空指针异常产生的主要原因如下:(1)当
- 下面通过代码看下springboot 跨域配置类,代码如下所示:ackage org.fh.config;import java.io.IO
- 本文实例讲述了C#从命令行读取参数的方法。分享给大家供大家参考。具体如下:using System;class MainClass{ pub
- 1、创建实体属性标记public class CellAttribute : Attribute {&n
- 在Android中,线程内部或者线程之间进行信息交互时经常会使用消息,这些基础的东西如果我们熟悉其内部的原理,将会使我们容易、更好地架构系统
- 本文实例为大家分享了android TextView跑马灯效果的具体代码,供大家参考,具体内容如下一、要点设置四个属性android:sin
- Unity IPostBuildPlayerScriptDLLsUnity IPostBuildPlayerScriptDLLs是Unity
- 接收JSON浏览器传来的参数,可以是 key/value 形式的,也可以是一个 JSON 字符串。在 Jsp/Servlet 中,我们接收
- 前段时间在看属性动画,恰巧这个按钮的效果可以用属性动画实现,所以就来实践实践。效果基本出来了,大家可以自己去完善。首先看一下效果图:我们看到
- 在android智能平板设备应用中,一项耗时的操作总要有个提示进度的框来提高用户的操作体验,操作进度提示框就显得很常用了。系统自带的有进度条
- 消息的可靠投递在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用
- 1.获取String osName =System.getProperties().getProperty(&quo
- 这篇文章主要介绍了MyBatis传入数组集合类并使用foreach遍历,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 1 关于自动内存管理Java是由jvm来管理内存,包括自动分配以及自动回收,因此它不容易出现内存泄漏和内存溢出问题。C/C++,由程序员手动
- Android 实现全屏显示的几种方法整理A、设置主题实现全屏直接在AndroidManifest.xml文件中设定Activity主题为全
- SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出):cache – 对给定命名空间的缓存配置。cache-ref – 对其他命
- 本文实例讲述了Android编程自定义线程池与用法。分享给大家供大家参考,具体如下:一、概述:1、因为线程池是固定不变的,所以使用了单例模式