Mybatis插入操作 主键自增 返回成功 但是数据库没有数据

插入操作成功,消耗了一个主键,但是数据库没有看到相关数据。一般这种情况说明可能事务没有执行成功,事务回滚了。数据库操作要通过 ACID规则来约束事务,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

MyBatis中的事务是指一系列数据库操作,这些操作要么全部执行成功,要么全部执行失败。如果操作过程中发生错误,所有对数据库的修改都将被回滚,即还原到最初状态。事务是确保数据一致性和完整性的关键机制之一。
在MyBatis中,我们可以通过三种方式来管理事务:

  • 编程式管理事务:在代码中显式开启、提交或回滚事务。
  • 声明式管理事务:通过AOP代理实现事务管理,可以让代码更简洁,更容易维护。
  • 注解式管理事务:通过注解方式管理事务,是声明式管理事务的一种扩展方式。

因为采用的是声明式事务管理(在mybatis-config.xml文件里面配置的),使用的是jdbc的事务管理器,将事务提交给mybatis处理。

但是在使用它的时候,由于我们使用的是SqlSessionFactory这个类的openSession方法来创建实例

。源码如下,可以看到最后那个值默认是false,这个值决定是否自动提交事务,false就意味着不会自动提交,需要我们手动提交

public SqlSession openSession() {return this.openSessionFromDataSource(this.configuration.getDefaultExecutorType(), (TransactionIsolationLevel)null, false);}

 所以事务执行完毕后,我们手动设置一个事务提交即可。

ps:数据库的查询不需要提交事务,因为它不涉及数据的修改,也就不会影响事务的一致性原则,

所以不需要提交事务。还有有时候可能执行的操作有问题也会回滚,需要结合具体问题进行分析。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/860812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目里出现两个配置类继承WebMvcConfigurationSupport时,为什么只有一个会生效(源码分析)

为什么我们的项目里出现两个配置类继承WebMvcConfigurationSupport时,只有一个会生效。我在网上找了半天都是说结果的,没有人分析源码到底是为啥,博主准备讲解一下,希望可以帮到大家! 大家基本遇到过一种情况&#xff…

互联网摸鱼日报(2024-06-26)

互联网摸鱼日报(2024-06-26) 36氪新闻 继南非后,巴基斯坦光储市场爆发 | 最前线 能源专家谈产能过剩:“卷”是市场经济的固有特征 | 最前线 Manner,有理想的人也伤心 详解开源闭源之争,十家大模型厂商的商战策略 试水一年即被…

SQL Server 2022从入门到精通

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

ardupilot开发 --- 视觉伺服 篇

风驰电掣云端飘,相机无法对上焦 1.视觉伺服分类2.视觉伺服中的坐标系3.成像模型推导4.IBVS理论推导5.IBVS面临的挑战6.visp 实践参考文献 1.视觉伺服分类 控制量是在图像空间中推导得到还是在欧式空间中推导得到,视觉伺服又可以分类为基于位置(PBVS)和基…

Flink 状态管理

一、状态 流式计算分为无状态和有状态两种情况。无状态的计算观察每个独立事件,并且根据最后一个事件输出结果。例如,流处理应用程序从传感器接收温度读数,并在温度超过90度时发出告警。有状态的计算则会基于多个事件输出结果。例如&#xf…

一款开源、高颜值的AI物联网数据平台

介绍 AIOT人工智能物联网平台是一站式物联网开发基础平台,帮助企业快速实现数字化、精细化数据管理。核心系统为:物联网平台 数据中台(数据底座) AI。 同时支持文生图、语音合成等。大模型支持陆续也会慢慢开发。 物联系统介绍…

实战分析:自动劫持 root 密码并注入后门密码的网络安全威胁与防御策略

实战分析:自动劫持 root 密码并注入后门密码的网络安全威胁与防御策略 引言 在网络安全领域,后门和密码劫持是常见的攻击手段,它们允许攻击者非法获取系统访问权限。本文将深入探讨一种实战场景,分析攻击者如何自动劫持 root 密…

CLIP 计算过程图解

CLIP 计算过程图解 CLIP模型是OpenAI开发的一种多模态学习模型,它通过学习文本和图像之间的关联,实现了跨模态的语义理解。下面是CLIP模型计算过程的简化描述: 1 数据准备 选取包含文本和图像对的mini-batch,例如"big tab…

ReentrantReadWriteLock

读写锁 独占锁X:指该锁一次只能被一个线程所持有,对 ReentrantLock 和 Synchronized 而言都是独占锁 共享锁S:指该锁可以被多个线程锁持有 ReentrantReadWriteLock 其读锁是共享锁,写锁是独占锁 作用:多个线程同时…

【快速入门】Transformer: Attention Is All You Need

Transformer → \to → 【知名应用】BERT (unsupervised trained Transformer) Transformer :seq2Seq model with self-attention, 后续会主要说明 self-attentionTransformer的组成: Self-attention是 Attention变体,擅长捕获数据/特征的内…

【容器化】docker和docker-compose/dockerfile和docker-compose.yml

文章目录 docker和docker-composeDockerDocker Compose总结 dockerfile和docker-compose.ymlDockerfiledocker-compose.yml示例Dockerfile 示例docker-compose.yml 示例 docker和docker-compose Docker和Docker Compose是两个重要的工具,用于容器化应用程序的开发、…

完整代码Python爬取豆瓣电影详情数据

完整代码Python爬取豆瓣电影详情数据 引言 在数据科学和网络爬虫的世界里,豆瓣电影是一个丰富的数据源。在本文中,我们将探讨如何使用Python语言,结合requests和pyquery库来爬取豆瓣电影的详情页面数据。我们将通过一个具体的电影详情页面作…

JavaScript关于bind解析

在 JavaScript 中,bind() 方法用于创建一个新的函数,该函数的 this 值被绑定到调用 bind() 方法的对象。bind() 方法的主要目的是修改函数的 this 指向。 bind() 方法可以接受一个或多个参数,第一个参数是要绑定的 this 值,后续的…

oracle11.2.0.4 RAC 保姆级静默安装(一) GI集群软件

一、响应文件准备 我们直接使用软件解压后的response文件夹中的响应文件模板进行修改 选择当前服务器的主机名,产品目录是在已存在的/u01/app目录基础上自动创建的无需提前创建oraInventory 按需选择语言,具体语言配置参考表格 一般rac默认选择安装类型为CRS_CONFIG 对应正…

借助 NGINX Unit 在服务器端使用 WebAssembly

原文作者:Liam Crilly of F5 原文链接:借助 NGINX Unit 在服务器端使用 WebAssembly 转载来源:NGINX 中文官网 NGINX 唯一中文官方社区 ,尽在 nginx.org.cn WebAssembly(缩写为 Wasm)可为 Web 应用领域提供…

探索IPython的隐藏力量:精通%macro命令

探索IPython的隐藏力量:精通%macro命令 在IPython的强大世界中,存在着一些被称为“魔术命令”的特殊命令,它们扩展了Python的标准能力,让我们的交互式编程体验更加丰富和高效。其中,%macro命令是一个鲜为人知但极其有…

Vscode interaction window

python 代码关联到 jupyter 模式 在代码前添加: # %%print("hellow wolrd!") 参考文档链接: https://code.visualstudio.com/docs/python/jupyter-support-py

C++ 教程 - 06 类的封装、继承、多态

文章目录 封装继承多态 封装 在private/protected 模块放置数据或者底层算法实现&#xff1b;在public块提供对外接口&#xff0c;实现相应的功能调用&#xff1b;类的封装案例 #include <iostream> using namespace std;// 类的定义 一般放在头文件 class Stu {public…

3、广告-交易模式

一、交易模式种类&#xff08;Types of Transaction Models&#xff09; RTB实时竞价&#xff08;Real-Time Bidding, RTB&#xff09; RTB是程序化广告中最常见的交易模式之一。它通过实时竞价的方式&#xff0c;让广告主在广告展示前以竞拍的方式获取广告展示机会。每当有广告…

uniapp——上传图片获取到file对象而非临时地址——基础积累

最近在看uniapp的代码&#xff0c;遇到一个需求&#xff0c;就是要实现上传图片的功能 uniapp 官网地址&#xff1a;https://uniapp.dcloud.net.cn/ 上传图片有对应的API&#xff1a; uni.chooseImage方法&#xff1a;https://uniapp.dcloud.net.cn/api/media/image.html#choo…