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执行器与新增返回主键问题 的相关文章

  • Base36 编码字符串?

    我一直在网上查找 但找不到解决此问题的方法 在 Python Ruby 或 Java 中 如何对以下字符串进行 Base 36 编码 nOrG9Eh0uyeilM8Nnu5pTywj3935kW 5 Ruby 以 36 为基数 s unpa
  • (Java) App Engine 中的静态文件无法访问

    The 示例文档 http code google com appengine docs java gettingstarted staticfiles html表示您只需将文件放在 war 或子目录 中 并且应该可以从主机访问它们 只要它
  • 删除优先级队列的尾部元素

    如何删除优先级队列的尾部元素 我正在尝试使用优先级队列实现波束搜索 一旦优先级队列已满 我想删除最后一个元素 优先级最低的元素 Thanks 没有简单的方法 将元素从原始元素复制到新元素 最后一个除外 PriorityQueue remov
  • 您建议使用哪种压缩(GZIP 是最流行的)servlet 过滤器?

    我正在寻找一个用于大容量网络应用程序的 GZIP servlet 过滤器 我不想使用容器特定的选项 要求 能够压缩响应负载 XML Faster 已在大批量应用的生产中得到验证 应适当设置适当内容编码 跨容器移植 可选择解压缩请求 谢谢 我
  • FileNotFoundException - Struts2 文件上传

    Strange FileNotFoundException使用Struts2上传文件时 这是 JSP 的一部分
  • Spring数据中的本机查询连接

    我有课 Entity public class User Id Long id String name ManyToMany List
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • 是否可以从 servlet 内部以编程方式设置请求上下文路径?

    这是一个特殊情况 我陷入了处理 企业 网络应用程序的困境 企业应用程序正在调用request getContext 并将其与另一个字符串进行比较 我发现我可以使用 getServletContext getContextPath 获取 se
  • 添加到列表时有没有办法避免循环?

    我想知道这样的代码 List
  • Spring Data JPA:查询如何返回非实体对象或对象列表?

    我在我的项目中使用 Spring Data JPA 我正在演奏数百万张唱片 我有一个要求 我必须获取各种表的数据并构建一个对象 然后将其绘制在 UI 上 现在如何实现我的 Spring 数据存储库 我读到它可以通过命名本机查询来实现 如果指
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • 无法在 Java/Apache HttpClient 中处理带有垂直/管道栏的 url

    例如 如果我想处理这个网址 post new HttpPost http testurl com lists lprocess action LoadList 401814 1 Java Apache 不允许我这么做 因为它说竖线 是非法的
  • Play.application() 的替代方案是什么

    我是 Play 框架的新手 我想读取conf文件夹中的一个文件 所以我用了Play application classloader getResources Data json nextElement getFile 但我知道 play P
  • Postgres 按查询分组

    我正在尝试在 postgres 的查询中使用 group by 我无法让它按照我想要的方式工作 以便根据需要对结果进行分组 这是另一个堆栈问题的扩展我刚刚回答过的递归查询 https stackoverflow com questions
  • 如何重置 SQL Server 中表的 IDENTITY 列? [复制]

    这个问题在这里已经有答案了 我怎样才能重置我的IDENTITY我已经填充的表中的列 我尝试过类似的方法 但它不起作用 WITH TBL AS SELECT ROW NUMBER OVER ORDER BY profile id AS RN
  • 在 Oracle 中如何将多行组合成逗号分隔的列表? [复制]

    这个问题在这里已经有答案了 我有一个简单的查询 select from countries 结果如下 country name Albania Andorra Antigua 我想在一行中返回结果 如下所示 Albania Andorra
  • JMS 中的 MessageListener 和 Consumer 有什么区别?

    我是新来的JMS 据我了解Consumers能够从队列 主题中挑选消息 那么为什么你需要一个MessageListener因为Consumers会知道他们什么时候收到消息吗 这样的实际用途是什么MessageListener 编辑 来自Me
  • ECDH使用Android KeyStore生成私钥

    我正在尝试使用 Android KeyStore Provider 生成的私有文件在 Android 中实现 ECDH public byte ecdh PublicKey otherPubKey throws Exception try
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有
  • 使用 JFreeChart 为两个系列设置不同的 y 轴

    我正在使用 JFreeChart 使用折线图绘制两个数据系列 XYSeries 复杂的因素是 其中一个数据系列的 y 值通常远高于第二个数据系列的 y 值 假设第一个系列的 y 值约为数百万数量级 而第二个数据系列的 y 值约为数百万数量级

随机推荐

  • 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