MyBatis如何关闭一级缓存(分注解和xml两种方式)
1.java实现“数据平滑升级”2.Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载3.https页面加载http资源的解决方法4.SpringBoot项目的html页面使用axios进行get post请求5.数据库 校验名称唯一性,用于新增和修改功能6.SpringBoot项目使用AOP及自定义注解保存操作日志7.正则表达式如何匹配中文8.个人练习前端技术使用Bootstrap、JQuery、thymeleaf9.SpringCloudGateway网关服务实现文件上传功能10.SpringBoot获取文件将要上传的IP地址11.CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统12.后端MultipartFile接收文件转Base6413.SpringBoot获取项目文件的绝对路径和相对路径14.SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
15.MyBatis如何关闭一级缓存(分注解和xml两种方式)
16.微服务与SOA区别17.springboot中表字段映射中设置JSON格式字段映射18.SpringBoot配置多数据源实战@
问题:为什么有缓存
mybatis默认开启一级缓存
什么场景下必须需要关闭一级缓存
场景:执行2次相同sql,但是第一次查询sql结果会加工处理,比如解析铭文,或者反编译加密解密用户名/密码字符串等等,如果不关闭一级缓存,等第二次再查询相同sql时不会去数据库表重新查询,而是直接使用缓存,从而导致后面拿到的不是原始数据而处理出错
关闭一级缓存方法(针对使用MyBatis场景)
第1种:注解形式(可指定仅仅某个Mapper关闭注解)
@Options(flushCache = Options.FlushCachePolicy.TRUE)
@Options(flushCache = Options.FlushCachePolicy.TRUE)
@Select("select * from ge_jdbc_datasource where id = #{id,jdbcType=BIGINT} and status = 1")
@ResultMap("resultMap")
JdbcDataSource find(Long id);
第2种:sql动态拼接传入的随机数
比如sql传参random()数值 或者 sql传入当前时间毫秒数,切记一定要从方法形参传过去而不要在sql中拼写,否则无效
举例说明:下面方式无效
select id from ge_jdbc_datasource where id = 1 and STATUS = 1 AND NOW()=NOW()
会议详情
重要信息
大会介绍
据统计,我国常住人口城镇化率超过65%,部分城市城镇化率超过90%,未来预计还会不断提升。城市建设行业的发展仍处于蓬勃发展的时期。但和此前不同,如今我们需要更高质量的城市建设,以缓和发展中带来的交通、土地、人口等问题。由此将产生非常多值得探讨的学术内容。
为了给该领域的专家学者提供一个交流、分享的平台,第二届城市建设与交通运输国际学术会议将于2025年1月17-19日在长春举办。会议主要围绕城市建设以及其中的交通运输内容展开讨论。诚邀广大专家学者与会交流,投稿分享学术成果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程