MyBatis执行器与新增返回主键问题

2023-11-14

前提:在写需求时碰到一个问题,在新增加一条数据时需要返回主键并进行后续操作,发现当前项目并不能返回主键

正常返回主键代码(1):

<insert id="方法名" parameterType="入参完整路径" useGeneratedKeys="true" keyProperty="id">
       sql
    </insert

正常返回主键代码(2):

<insert id="方法名" parameterType="入参完整路径" >
		<selectKey keyProperty="id" resultType="int" order="AFTER">
            select last_insert_id()
        </selectKey>
       sql
    </insert

正常是在 insert 属性里面写入:useGeneratedKeys=“true” keyProperty=“id” 或者获取到id,但是我并没有获取到,返回的主键一直是null。经过研究发现这块和MyBatis执行器有关系。

MyBatis执行器

SimpleExecutor: 默认的执行器, 对每条sql进行预编译->设置参数->执行等操作
BatchExecutor : 批量执行器, 对相同sql进行一次预编译, 然后设置参数, 最后统一执行操作
ReuseExecutor: 重用执行器会重用预处理语句(prepared statements)

我发现前面负责这个项目的人在mybatisConfig里面配置全局执行器设置为*Batch *

<setting name="executorType" value="BATCH" />

然后了解到执行器的区别才明白为什么一直返回主键为null , 因为是公司项目我没选择改执行器,还是选择了新增后又查了一遍获取id(虽然会有问题出现)。如果可以改MyBatis的话可以改成默认的就可以返回主键啦~

我是努力奋斗的小猿同学,希望大家一起努力一起进步~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyBatis执行器与新增返回主键问题 的相关文章

  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • 如何使用 SQL Server 2008 将行复制到同一个表中

    A 到目前为止我的方式 sqlCommand CommandText INSERT Table1 column1 column2 column3 SELECT column1 column2 column3 FROM Table1 WHER
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • Docker搭建kafka集群

    Docker搭建kafka集群 集群规划 镜像版本 kafka为什么需要依赖zookeeper 创建docker网络 搭建zk集群 新建文件docker compose zk yml 启动 搭建kafka集群 新建三个挂载文件 挂载原因 挂
  • TIA博途S7-1200学习笔记——数据类型

    目录 一 概述 二 基本数据类型 1 二进制数 1 1 BOOL 位 1 2 BYTE 1 3 WORD 1 4 DWORD 1 5 LWORD 2 整数 2 1 SINT 2 2 USINT 2 3 INT 2 4 UINT 2 5 DI
  • 注解@TableName、@TableField

    目录 TableName value 当数据库名与实体类名不一致或不符合驼峰命名时 需要在此注解指定表名 不加这个注解默认将实体类的小写形式在db中寻找 TableField 字段注解 该注解用于标识非主键的字段 将数据库列与 JavaBe
  • 幂函数与指数函数的区别

    a表示底数 n表示指数 a n叫做幂 幂就是一个数和它自己相乘的积 二个乘是二次幂 三个乘是三次幂 四个乘是四次幂 象三 五这样的幂是奇次幂 二 四是偶次幂负数乘负数是正数 负数乘正数是负 幂函数与指数函数的区别 指数函数 自变量 x 在指
  • 关于欧拉角的问题

    一 简单介绍 自己主要做一个知识记录 想着学了还是要写点东西的 首先我们可以把欧拉角看成是描述方位的一种方法 我们可以用欧拉角来表示旋转 也可以用四元数 以及用矩阵来表示旋转 欧拉角是一种常用的描述方位的方法 在这里简单的介绍下方向和方位的
  • 阿里巴巴“三板斧”管理到底是什么?

    阿里巴巴从最初的以马老师为首的18罗汉创始员工 发展至今拥有4万员工 从杭州的湖畔花园起家 到去美国纽约证券交易所上市敲钟 阿里巴巴如何走到现在 它背后的管理机制是怎样的 我们到底向它学什么 阿里巴巴管理总纲 阿里巴巴九板斧 中层能力三板斧
  • 哈希表与树的介绍

    前言 该篇文章 主要带我们认识什么哈希表和树 为我们在研究各个数据结构的实现及扩展算法 有个基本的认识 哈希表 特点 数组 寻址容易 数据连续存储空间 链表 插入与删除容易 放在堆内存中对象 存储并不连续 哈希表 寻址容易 插入删除也容易的
  • 多模态机器翻译

    摘录自 机器翻译 基础与模型 东北大学 文章目录 1 背景 2 机器翻译需要更多的上下文 3 图像翻译 4 基于图像增强的文本翻译 4 1 基于特征融合的方法 4 2 基于联合模型的方法 5 参考文献 1 背景 基于上下文的翻译是机器翻译的
  • js实例学习笔记

  • Elasticsearch ILM (index lifecycle management): logstash vs fluentd

    ILM Elasticsearch在升级到7 x之后 推出了一项新功能ILM 用于管理被大家诟病已久的index lifecycle management问题 只需要在kibana内简单配置 就可以管理以前我们不得不设置cronjob去删除
  • C#比较运算符及解析

    文章目录 博主写作不容易 孩子需要您鼓励 万水千山总是情 先点个赞行不行 比较运算符得出的结果是逻辑型 bool 即 True 或 False 比较运算符又称关系运算符 我们可以把它理解为一种判断 判断的结果是真或者是假 关系表达式的返回值
  • Android 权限大全-转载

    Android 权限大全 转自博客园 博客园链接 Key android permission ACCESS CHECKIN PROPERTIES Title 访问检入属性 Memo 允许对检入服务上传的属性进行读 写访问 普通应用程序不能
  • 初入HTML

    1 HTML语言用来做什么 html语言专门用来描述网页 它属于一种标记语言 它是由一组标签构成 2 HTML元素 一个HTML元素是包含了开始标签和结束标签 当然 还有一些是单标签 例如 p 段落标签 p 双标签 br 换行标签 单标签
  • openlayers地图坐标coordinate转换为屏幕像素坐标pixel

    openlayers地图坐标coordinate转换为屏幕像素坐标pixel 网上查资料试了很多人的方法 需要各种转换但没成功 后来发现openlayers的map对象自带该方法 记录下来 希望帮助到大家 方法说明 获取坐标的像素坐标 这将
  • 随机森林补充缺失值

    导入必要的库 import numpy as np import pandas as pd from sklearn ensemble import RandomForestRegressor 读取数据 data data all1 找出所
  • 3D数学基础——向量与矩阵变换

    向量相乘 1 点乘 两个向量的点乘等于他们的数乘结果乘以两个向量之间家教的余弦值 v k v k cos cos v k v k 通过点乘的结果计算两个非单位向量的夹角 2 叉乘 叉乘只在3d空间中有定义 他需要两个不平行向量作为输入 生成
  • nvm install node没反应_LINUX使用nvm安装node,nrm的使用

    为什么要使用nvm来安装node 我们在开发过程中 特别是协作开发时 通常会对具体的node的版本有限制 我们使用nvm可以轻松解决这个问题 nvm安装node的好处就是可以切换node版本 用起来方便 所以介绍下如何使用nvm安装node
  • 【Vs Code 学习笔记】

    Vs Code 远程连接服务器 详细教程 默认你已经安装好了Vs Code 1 如果没有请参考官网链接 https code visualstudio com 直接安装就可以了 2 打开VsCode 你可以看到如下界面 然后在按照如下操作下
  • Java的Properties属性集、获取项目路径的3种方式(干货满满)

    属性集介绍 集合家族中有个成员java util Properties 它继承于Hashtable Properties是使用键值结构存储数据的 但它最大的特点是具有持久化功能 持久化 内存 gt 硬盘 持久化的过程必须依赖于IO流 对IO
  • MyBatis执行器与新增返回主键问题

    前提 在写需求时碰到一个问题 在新增加一条数据时需要返回主键并进行后续操作 发现当前项目并不能返回主键 正常返回主键代码 1