JavaWeb整合Mybatis更新删除操作后查询返回数据相同的问题解决

整合SSM框架实现最简单的操作数据库功能(详细版) 整合SSM框架前言:环境要求环境要求1.基本环境配置1.1 导入相关的pom依赖!1.2 在pom.xml中设置Maven的资源过滤设置1.3 建立项目的基本框架和配置框架2.从底至上层级代码编写2.1 Mybatis层编写2.1.1数据库配置文件 database.properties2.1.2 IDEA关联数据库2.1.3 编写MyBatis的核心配置文件2.2 编写数据库的实体类2.3 DAO层的接口和Mapper.xml2.3 编写service层的接口和实现类3.Spring整合3.1Spring 阅读详情

前言

不知道是平时没注意还是怎的,以前springboot整合mybatis貌似没有出现过这个问题。

问题描述

对应实时性的数据,在对同一张表的结构进行操作(删除,修改等操作)后再查询该表中所有数据,已经设置为自动提交,删除或更新操作后,数据库已经变了,但mybatis的查询数据依然返回之前未删除(修改)的数据。既然数据库已经变了,那么就不是事务提交的问题

原因

Mybatis做了数据库的查询优化以提升性能和效率,每次查询都先从缓存里找,有则直接从缓存拿数据,而不是重新对数据库发起访问。

解决

当执行insert、update、delete语句时,指定flushCache =true,清空缓存。

flushCache默认为true,表示任何时候语句被调用,都会导致本地缓存和二级缓存被清空。

如下:(指定flushCache =“true”)则每次查询时没有缓存能够优化查询操作则重新从数据库里拿数据。

    <select id="DeleteCake" flushCache="true" >

      DELETE   from  goods WHERE goods.id =#{id}
    </select>
    <select id="DeleteUser"  flushCache="true" >
            DELETE   from  user WHERE  username=#{id}
    </select>

    <select id="DeleteOrder"  flushCache="true" >

    DELETE   from   "order"  where order_id =#{id}
    </select>

参考

MyBatis中开启查询缓存及flushCache与useCache的使用_海与熔岩的博客-优快云博客_flushcache

通俗易懂讲解javaweb之mybatis MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通的Java对象)为数据库中的记录。 阅读详情

相关推荐

PySide6 vs PyQt6:新手如何根据Python版本选择GUI库?附版本兼容性测试

本文针对Python GUI开发新手,详细对比了PySide6与PyQt6的核心差异,并提供了基于Python 3.8至3.12等不同版本的兼容性实测数据与选择建议。文章重点分析了版本选择策略,帮助开发者根据自身Python环境、项目需求(如与matplotlib集成)及许可证考量,做出最合适的决策,并附有安装验证与避坑指南。

weixin_29094539的博客 703

在同一事务中,mybatis多次查询返回相同结果解决方法

一、问题描述: 使用spring @Transaction事务时,在for循环中需要多次执行同一查询语句,第一次查询出对象后,对对象进行修改后,结果再进行第二次查询的时候,查询返回的数据是自己第一次修改后的数据。因为业务需要每次查询都需要取更改数据库,以后的查询都会根据上一次循环修改后的值进行操作。 二、解决方法: (1)在xml文件 select语句添加  flushCache="true...

oqq0147的专栏 6828

安装VMware,出现没有虚拟网络适配器的问题

安装VMware,出现没有虚拟网络适配器的问题

Young_Harry的博客 1万+

Mybatis进行insert、update操作的返回值问题

update测试案例: 1、按照主键以外任意一个字段进行update操作(前提:这个字段值数据库中存在相同的两个或者多个) ~~在这里,以managers为条件进行更新操作 2、不更改任何数据的情况下,进行update操作 3、结果: 数据都没有发生改变,也即没有受影响的行数 ···· 如果返回的是受影响的行数,那么返回值应该为0 ···· but!返回值为3,因此,返回的必定是匹配到的行数 ...

cx1_cx1的博客 3464

基于OpenSSL的CA建立及证书签发(签发多域名/IP)

自签SSL证书(多域名/IP) 本文基于以下环境: 内核信息:Linux zabbix 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux 系统版本:CentOS Linux release 7.6.1810 (Core) OpenSSL版本:OpenSSL 1.0.2k-fips 26 Jan 2017 【前言】 在基于OpenSSL的CA建立及证书签发一文中(后面统.

hobby云说 4647

Python 爬虫实战:华尔街见闻精选文章爬取(反反爬 + 投资情绪分析)

Python 爬虫实战:华尔街见闻精选文章爬取(反反爬 + 投资情绪分析)

yansideyucsdn的博客 969

同一事务中修改后再查询还是修改前的结果

同一事务中修改后再查询还是修改前的结果

Java&Develop的博客 3065

杰理SDK UART 使用教程

本文介绍了JL701n芯片的UART串口通信使用教程,重点讲解了UART2的初始化配置、数据收发和中断处理功能。教程详细说明了代码结构、核心功能函数、配置参数和使用步骤,包括UART初始化、数据发送和接收中断处理等关键操作。同时提供了完整的API接口说明和注意事项,强调了中断处理限制、缓冲区管理、引脚配置等重要细节。最后给出了基本使用流程和高级任务处理示例,并针对常见问题提供了故障排除建议。本教程适用于需要在JL701n芯片上实现可靠串口通信的开发者。

qq_42014563的博客 1818

增删改操作后,查询的数据不变

增删改操作后,查询的数据不变

weixin_44021888的博客 1333

YOLOv8人工智能与深度学习——强化学习

本文介绍了将YOLOv8目标检测模型与强化学习结合的方法。主要应用包括自适应目标检测(动态调整检测参数)、主动学习(智能选择标注样本)和多目标跟踪优化。实现方案采用深度Q网络策略,通过定义状态表示、动作空间和奖励函数,使检测系统能根据环境反馈优化性能。该方法具有自适应优化、资源高效、持续改进等优势,能构建更智能的计算机视觉系统。文章详细说明了强化学习环境的构建、策略网络的实现以及训练过程,并提供了代码示例。

u010117029的博客 259

华为OD机试2025A卷 - 用户调度问题(Java & Python& JS & C++ & C )

题目要求每个用户依次选择当前所能选择的最小资源消耗策略,并且若有多个策略的资源消耗相同,则选择最后一个策略。每个用户的选择是独立的,只考虑该用户的策略和相邻用户的约束,不考虑整个调度序列的全局资源消耗。每个用户根据自己的当前状态(即自己的三种选择的资源消耗)做出局部最优选择:在当前可选的策略中,选择消耗最小的那个。如果有多个最小值,则选择最后一个(根据题意)。这一选择是局部的最优,即在当下最有利的选择,但并不保证最终的整体系统资源消耗是最小的。

算法大师! 1万+

Spring Boot整合MyBatis

1.繁琐的编程模型需要手动管理数据库连接的创建、获取和关闭。需要手动创建和关闭Statement/PreparedStatement对象。需要手动处理查询结果集ResultSet的遍历和数据提取。2.低层次的抽象JDBC API提供的是底层的数据库访问接口,开发者需要关注很多细节性的问题,如SQL语句的拼装、结果集的映射等。开发效率较低,可维护性较差。3. 缺乏高级功能支持JDBC无法提供诸如事务管理、一级缓存、延迟加载等高级功能。需要开发者自行实现这些功能,增加开发难度。

zhuzhu_YT的博客 9127

⑩电子产品拆解分析-家用无线遥控开关433Mhz

①免布线随意贴,装上就能使用解决单线开关烦恼;②遥控配对简单,无线通讯距离长,信号可穿墙;

a6662580的博客 4693

[JavaWeb学习日记]Vue工程,springboot工程整合Mybatis,数据库索引

Autowired。(文章内容一键提取只提取出来个autowired,好像...也行)

m0_63186780的博客 1269

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

全网最强JavaWeb笔记 | 万字长文爆肝JavaWeb开发——day10SpringBootWeb案例-1

万字长文爆肝黑马程序员2023最新版JavaWeb教程]。这套教程打破常规,不再局限于过时的老套JavaWeb技术,而是与时俱进,运用的都是企业中流行的前沿技术。笔者认真跟着这个教程,再一次认真学习一遍JavaWeb教程,温故而知新,对JavaWeb开发也有了更加深入细致的了解。因此笔者做了全网最全面详细的学习笔记,通篇图文并茂,

qq_45832461的博客 1252

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JAVAWEB开发之mybatis详解(一)——mybatis的入门(实现增删改查操作)、自定义别名、抽取代码块以及动态SQL的使用

mybatis简介  mybatis是一个Java持久层框架,Java中操作关系型数据库使用的是jdbc,mybatis是对jdbc的封装。 mybatis的入门需要掌握以下几点: 1、使用jdbc程序使用原生态的jdbc进行开发存在很多弊端,优点是执行效率高,mybatis弥补了jdbc的缺陷。 2、mybatis的架构(重点)。 3、mybatis的入门程序(重点)。      实

4839

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JavaWeb04-MyBatis与Spring结合

自用笔记复盘。

m0_60041624的博客 2224

黑马程序员JavaWeb开发教程(后端部分Mybatis) ---笔记分享

通过Mybatis的快速入门,我们明白了,通过Mybatis可以很方便的进行数据库的访问操作。但是大家 要明白,其实java语言操作数据库呢,只能通过一种方式:使用sun公司提供的JDBC规范。Mybatis框架,就是对原始的JDBC程序的封装。JDBC,就是使用Java语言操作关系型数据库的一套API本质:sun公司官方定义的一套操作所有关系型数据库的规范,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)

蓝桉 1638

【JavaWeb】——Mybatis学习笔记

MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。SQL注入、XML

Tom299的博客 1431

JavaWeb学习--MyBatis-Plus整合SpringBoot的ServiceImpl方法(增加,修改与删除部分)

由于案例开启了逻辑删除,所以这里采用的是逻辑删除的方式,如果没有开启逻辑删除,则会在数据库中删除这个数据。接下来是常用的增加,修改以及删除部分。首先是增加部分,增加一个新的数据。然后是使用实体类的id删除。然后是修改或者添加数据。接下来是Wrapper。

shouxifeiwu的博客 365

传统JavaWeb开发到整合Spring生态的演进过程

传统Java Web架构包含数据库层(DBUtil/ORMUtil)、PO/VO数据模型、Service业务层、Servlet控制层及Web视图层。Spring MVC优化了控制器,通过注解简化URL映射;Spring的IOC容器和依赖注入(DI)实现对象解耦;MyBatis替代传统持久层工具,通过Mapper接口+XML简化SQL操作。这些框架分别解决了URL映射繁琐、对象耦合度高、SQL操作复杂等问题,提升了开发效率和可维护性。

林冬的博客 664

JavaWeb 全栈开发指南:从基础到企业级框架实战

JavaWeb全栈开发技术体系涵盖了从前端到后端的完整开发流程。文章系统介绍了JavaWeb开发的核心技术栈,包括Servlet/JSP、MySQL数据库、SSM框架整合(Spring+SpringMVC+MyBatis)以及现代化的SpringBoot开发。重点讲解了Tomcat服务器配置、HTTP协议解析、Servlet生命周期、JSP动态页面开发、过滤器与监听器应用等核心技术。同时详细阐述了数据库交互方式,从JDBC基础到MyBatis框架应用,并提供了SSM框架整合的完整配置方案。此外还介绍了Spr

sengminPark的博客 1210

day62 JavaWeb框架阶段—— Mybatis的注解开发&SSM框架整合(原始方式整合&Spring整合MyBatis& MyBatis的注解实现复杂映射开发)

2.Mybatis的注解开发 2.1 MyBatis的常用注解 这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper 映射文件了。我们先围绕一些基本的CRUD来学习,再学习复杂映射多表操作。 @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以与...

qq_38454176的博客 422

【Java Web】009 -- MyBatis(入门 & 增删改查 & 动态SQL)

MyBatis(入门 & 增删改查 & 动态SQL),内容主要包括:MyBatis快速入门案例,增删改查等基础操作,动态SQL标签(if\where\set\foreach\sql\include)等。

汤姆lazy的优快云博客 5683

SSM整合项目(删除家居 + 分页查询)

2.FurnServiceImpl.java 实现方法 3.单元测试 2.postman测试 2.编写删除家居方法 5.结果展示 2.FurnServiceImpl.java 实现方法 2.编写Controller层 FurnController.java 添加方法 3.HomeView.vue 修改编辑按钮 5.结果展示 4.配置mybatis分页拦截器 mybatis-config.xml 5.编写Controller 6.postman测试 2.数据池设置三个数据 2.结果

Sun的个人博客 829
上一篇: JavaWeb中的VUE快速入门
下一篇: 单片机和嵌入式(物联网开发方向)学习路线年终总结
昊月光华
博客等级 码龄6年 340粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值