Mybatis返回自增主键id的值,2种方式

2023-11-07

1.方式一【不建议使用】

【有BUG的方式】通过useGeneratedKeys="true" keyProperty="id"来设置返回新的id值,这里有个问题就是,通过这种方式插入的值,经常会返回1,原因是因为他这里的意思是返回当前影响的行数,不能准确返回你新插入的id值【虽然有时候返回的结果是准确的】

<!--插入新的用户数据-->
<insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.hxj.pojo.User">
    insert into user(id,username,password,email,province,city,hobby,createtime)
    values(#{id},#{username},#{password},#{email},#{province},#{city},#{hobby},#{createtime})
</insert>

2.方式二【建议使用】

【无BUG的方式】xml里面的代码

 <!--添加订单到order-->
    <insert id="insert" parameterType="com.hxj.pojo.Orderx">
        <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
            select LAST_INSERT_ID()
        </selectKey>
        insert into orderx(userid,allprice,ordertime,address)
        values(#{userid},#{allprice},#{ordertime},#{address})
    </insert>

【无BUG的方式】service里面的代码

/**
 * 插入新的order数据,返回的值是新插入的order的id
 * @param orderx
 * @return
 */
@Override
public Integer insert(Orderx orderx){
    SqlSession sqlSession = MyBatisUtils.getSqlSession(true);
    OrderMapper orderMapper = sqlSession.getMapper(OrderMapper.class);
    orderMapper.insert(orderx);//先执行插入orderx的语句
    Integer id = orderx.getId();//通过orderx.getId()获取你新插入数据的id值
    return id;//返回新插入的数据id
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mybatis返回自增主键id的值,2种方式 的相关文章

随机推荐

  • DVWA-Command Injection

    大约 命令注入攻击的目的是在易受攻击的应用程序中注入和执行攻击者指定的命令 在这种情况下 执行不需要的系统命令的应用程序就像一个伪系统外壳 攻击者可能会使用它 作为任何授权的系统用户 但是 命令的执行权限和环境与 Web 服务具有的权限和环
  • java判断一个数字是否为偶数的几种方式

    java判断一个数字是否为偶数的几种方式 第一种 取余 function isOdd n if n 2 0 console log n 是偶数 else if n 2 1 console log n 是奇数 else console log
  • Pytorch训练时显存分配过程探究

    对于显存不充足的炼丹研究者来说 弄清楚Pytorch显存的分配机制是很有必要的 下面直接通过实验来推出Pytorch显存的分配过程 实验实验代码如下 import torch from torch import cuda x torch z
  • 【BIOS】Bios设置通电即自动开机。

    问题需求 设置电脑 服务器接通电源后 自动开机 解决方案 不同主板的bios设置不一样 但方向都差不多 在此整理一些不同准版bios的设置方法 通用主板Bios 开机后连续按del键 进入Bios 切换到 Advanced 菜单下 找到 A
  • 使用SOLIDWORKS方程式绘制渐开线齿轮

    在SOLIDWORKS中 有时需要在参数之间建立关联 但这种关联却无法通过使用几何关系或常规的建模技术来实现 这时我们就可以使用方程式来建立模型中尺寸之间的数学关系 在方程式驱动的曲线中最经典的就是渐开线了 这也是绘制齿轮时不可或缺的线条类
  • Qt 编译错误 提示TypeError: Property 'asciify' of object Core::Internal::UtilsJsExtension(0x27a9278) is not

    编译Qt 时提示错误 TypeError Property asciify of object Core Internal UtilsJsExtension 0x27a9278 is not a functio 说明 出现这个错误的表层原因
  • LeetCode-679.24 点游戏、深度优先搜索算法DFS

    来源 力扣 LeetCode 题目分析 括号运算符仅仅表达了一个运算顺序 可以不用考虑 实际的运算类型就 4 种 一共只有 4 个数 因此所有组合的可能性是有限的 DFS 算法就是对当前的所有可能的操作进行枚举 当前的操作即从可选的数字中挑
  • 国内获取Docker镜像缓慢

    国内获取Docker镜像时 访问 https hub docker com 速度缓慢 只有几十K左右 这种情况可以使用国内的一些docker镜像 例如 网易蜂巢 阿里巴巴 LUG USTC等 此处介绍使用中国科学技术大学 LUG USTC
  • 【分享】免费的AI绘画网站(5个)

    哈喽 大家好 我是木易巷 随着人工智能技术的不断发展 越来越多的AI绘画软件开始涌现 如果你想要免费享受AI绘画的乐趣 那你可要好好看下面的内容 Vega AI创作平台 入口 https rightbrain art 一款专业的人工智能创作
  • AI 工具合辑盘点(八)持续更新 之 AI 面部生成工具和AI 角色生成工具

    一 AI 面部生成工具 需要一张真实人物的肖像画来用于你的营销材料 正在寻找具有特定面部特征的模特 但你的预算有限 正在创建你的买家人物 但不想从互联网上窃取图片 如果是这样 也许AI面部生成器可以作为解决方案 它们利用先进的图像处理技术
  • springboot 项目 docker 启动镜像 读不到application配置

    Dockerfile FROM openjdk 17 RUN cd RUN mkdir p config 删除旧jar包 RUN rm rf springboot3 jar 重新复制jar包 ARG JAR FILE ADD target
  • Maven问题:To see the full stack trace of the errors, re-run Maven with the -e switch.

    报错如下 ERROR gt Help 1 ERROR ERROR To see the full stack trace of the errors re run Maven with the e switch ERROR Re run M
  • C语言之详解静态变量static

    在C语言中static是用来修饰变量和函数的 这篇文章详细介绍了static主要作用 文章中有详细的代码实例 需要的朋友可以参考阅读 在C语言中 static是用来修饰变量和函数的 static主要作用为 1 修饰局部变量 静态局部变量 2
  • 在idea中快速构建方法的说明注释,带有参数信息

    在方法上面输入 然后按Ctrl enter即可 下面都是自动生成的内容 param request param response param handler return throws Exception Override public b
  • git命令超实用总结(23条超实用命令)

    本文总结了常见的23个git使用场景的处理方法 足够应对日常学习工作中对git的使用 文章目录 1 添加SSH验证免登陆 2 将本地项目上传GitHub 2 1 如果是新项目 本地还没有代码 2 2 如果想直接使用远程的代码 2 3 如果是
  • Android studio 3.5 debug 包不能安装

    debug模式下编译出的apk无法安装 可在根目录gradle properties中配置 android injected testOnly false
  • HTTP 隧道

    本文摘自书籍 HTTP 权威指南 此系列文章对应 github地址 隧道 可以通过 HTTP 应用程序访问使用非 HTTP 协议的应用程序 Web 隧道允许用户通过 HTTP 连接发送非 HTTP 流量 这样就可以在 HTTP 上捎带其他协
  • 2023牛客暑期多校训练营7 I We Love Strings

    https ac nowcoder com acm contest 57361 I 分治 容斥原理 include
  • [es6] 模板字符串内添加if判断

    我之前一只知道模板字符串中可以用三目运算符做判断 但今天有个需求要在模板字符串中添加if条件语句 于是百度了一下 在此记录一下 直接看代码吧 var html div class p 1 p p 2 p p 3 p p function i
  • Mybatis返回自增主键id的值,2种方式

    1 方式一 不建议使用 有BUG的方式 通过useGeneratedKeys true keyProperty id 来设置返回新的id值 这里有个问题就是 通过这种方式插入的值 经常会返回1 原因是因为他这里的意思是返回当前影响的行数 不