当前位置: 首页 > news >正文

MyBatis的部分知识点

一、resultMap的constructor配置方式
     <resultMap id="" type="">
        <constructor>
            <!--主键-->
            <idArg column="id" javaType="_int"/>
            <!--其他列-->
            <arg column="" javaType=""/>
        </constructor>
    </resultMap>

二、MyBatis使用注解配置SQL
@Select
@Insert/@Options
@Update
@Delete
如果需要使用复杂的动态SQL,建议使用XML方式;
如果是简单的SQL,可以考虑使用注解


三、MyBatis缓存
对于一些我们经常查询的并且不经常改变的数据,如果每次查询都要与数据库进行交互,那么大大降低了效率,因为我们使用缓存,将一些对结果影响不大且经常查询的数据存放在内存中,从而减少与数据库的交互来提高效率,这就是缓存的优势。


(一)、MyBatis缓存的分类
1. 一级缓存:同一个SqlSession对象, 在参数和 SQL 完全一样的情况下, 只执行一次 SQL 语句(前提缓存没有过期)
2. 二级缓存:Mybatis的二级缓存是指mapper映射文件。二级缓存的作用域是同一个namespace下的mapper映射文件内容,同一个SQLSessionFactory创建的多个SqlSession共享。


(二)、一级缓存
1、同一个SqlSession的情况  
    在参数和 SQL 完全一样的情况下,只执行一次 SQL 语句
2、不同的SqlSession的情况
    不使用缓存
    
3、清空缓存
    刷新缓存是清空这个SqlSession的所有缓存, 不单单是某个键
    Java代码方式:sqlSession.clearCache();
    xml方式 flushCache="true"
4、小结:
    ①. 同一个SqlSession中, Mybatis 会把执行的方法和参数通过算法生成缓存的键值, 将键值和结果存放在一个 Map 中, 如果后续的键值一样, 则直接从 Map 中获取数据;
    ②. 不同的SqlSession之间的一级缓存是相互隔离的;
    ③. 用一个 SqlSession, 可以通过代码或XML配置在查询前清空缓存;
    ④. insert、update、delete 语句会清空缓存。
    
    
(三)、二级缓存
二级缓存指的是 mybatis中SqlSessionFactory对象的缓存 ,由同一个SqlSessionFactory对象 创建的SqlSession共享缓存。

1、开启
    ①、在配置文件 mybatis-conf.xml中配置,让mybatis支持二级缓存。 新版本中已经默认为true,可以不用设置。
        <!--设置-->
        <settings>
            <!--开启二级缓存-->
            <setting name="cacheEnabled" value="true"/>
        </settings>

    ②、在映射配置文件Mapper.xml中 开启支持二级缓存
        <!--开启支持二级缓存-->
        <cache/>

    ③、操作支持二级缓存,在select标签 加上useCache="true"
    
    
MyBatis结果来源顺序: 一级缓存 -> 二级缓存(如果开启) —> 数据库

相关文章:

MyBatis的部分知识点

一、resultMap的constructor配置方式 <resultMap id"" type""> <constructor> <!--主键--> <idArg column"id" javaType"_int"/> <!--其他列--> …...

PAT A1089 Insert or Merge

1089 Insert or Merge 分数 25 作者 CHEN, Yue 单位 浙江大学 According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one element from the input…...

研发工程师玩转Kubernetes——创建一个测试容器

测试容器并不是什么都没有的容器&#xff0c;只是它没有我们期望的常驻进程。我们常用它来做一些测试。 举个例子&#xff0c;在《研发工程师玩转Kubernetes——自动扩缩容》中我们使用本地wrk进行了压力测试。如果我们希望进入容器手工调用wrk&#xff0c;该怎么做呢&#xff…...

FPGA - 7系列 FPGA内部结构之CLB -03- CLB相关原语以及应用

前言 本文节选UG474的第二章&#xff0c;进行整理翻译。CLB资源被FPGA综合工具自动有效地使用&#xff0c;不需要任何特殊的FPGA专用编码。一些HDL编码建议和技术可以帮助优化设计以获得最大效率。 设计检查清单 这些指南是为有效使用7系列CLB的设计建议提供的快速核对表。7…...

什么是日志关联

什么是日志关联 日志关联是一种分析来自不同源的日志数据以识别事件模式的技术。它用于更好地了解网络的活动&#xff0c;从而有效地保护网络免受漏洞和威胁。 日志关联是日志管理过程的关键部分。收集和存储日志后&#xff0c;集中式日志服务器将执行分析以检测特定事件。日…...

打家劫舍问题 Python题解

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…...

【JavaSE】Java基础语法(十八):接口

文章目录 1. 接口的概述2. 接口的特点3. 接口的成员特点4. 类和接口的关系5. 抽象类和接口的关系 1. 接口的概述 接口就是一种公共的规范标准&#xff0c;只要符合规范标准&#xff0c;大家都可以通用。Java中接口存在的两个意义 用来定义规范用来做功能的拓展 2. 接口的特点…...

SVD求解两组多维点之间的欧式变换矩阵,及halcon代码实现

之前研究了二维点的仿射变换&#xff0c;用解矩阵的方式求解了两组二维点之间的变换矩阵。 学习了下SVD&#xff0c;看到可以用SVD求解两组多维点之间的欧式变换矩阵&#xff0c;当然也是个最优化问题。 这里的变换只有平移和旋转&#xff0c;没有缩放。 一、先说结论&#…...

常用监控方案 Prometheus + Grafana 简单使用小结

文章目录 前言一、概念1.1 发展1.2 时序数据1.3 Metric 二、Prometheus2.1 架构2.2 配置2.3 查询语言PromQL2.4 Exporter 三、Grafana3.1 数据源3.2 权限3.3 面板可视化3.4 仪表盘 四、实战4.1 监控 Windows/Linux4.2 监控 JVM4.3 监控 MySQL4.4 监控 Springboot API 参考 前言…...

基于长短期神经网络LSTM的飞行轨迹跟踪预测,基于长短期神经网络LSTM的三维路径预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的飞行轨迹跟踪 完整代码: https://download.csdn.net/download/abc991835105/87705046 效果图 结果分析 展望 参考论文 背影 路径追踪预测,对实现自动飞行驾驶拥有重要意义,长短期神经网络是一种改进…...

计算机组成原理-指令系统-指令格式及寻址方式

目录 一、指令的定义 1.1 扩展操作码指令格式 二、指令寻址方式 2.1 顺序寻址 2.2 跳跃寻址 三、 数据寻址 3.1 直接寻址 3.2 间接寻址 3.3 寄存器寻址 ​ 3.4 寄存器间接寻址 3.5 隐含寻址 3.6 立即寻址 3.7 偏移地址 3.7.1 基址寻址 3.7.2 变址寻址 3.7.3 相对寻址…...

【满分】【华为OD机试真题2023B卷 JAVAJS】经典屏保

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 经典屏保 知识点循环迭代编程基础 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: DVD机在视频输出时,为了保护电视显像管,在待机状态会显示“屏保动画”,如下图所示,DVD Logo在屏幕内来回运动,碰到边缘会反弹…...

Apache 网页与安全优化

目录 一&#xff1a;Apache网页优化概述 1、概述 2、优化内容 3、gzip介绍 4、Apache的压缩模块 5、mod_ gzip 模块与mod_ deflate 模块 二&#xff1a; 网页压缩 1.检查是否安装 mod_deflate 模块 2. 如果没有安装mod_deflate 模块&#xff0c;重新编译安装 Apache 添…...

Unity的IFilterBuildAssemblies:深入解析与实用案例

Unity IFilterBuildAssemblies Unity IFilterBuildAssemblies是Unity引擎中的一个非常有用的功能&#xff0c;它可以让开发者在构建项目时自定义哪些程序集需要被包含在构建中&#xff0c;哪些程序集需要被排除在建之外。这个功能可以帮助开发者更好地控制项目的构建过程&…...

分片架构,Redis Cluster 分析

分片架构解决的问题 通过堆机器&#xff0c;提升读写性能&#xff0c;与存储性能 分片架构设计要点 分片规则 选择Cardinality大的作为分片键&#xff0c;尽可能保证数据分布均匀 常见分片键&#xff1a; 基于主键&#xff08;业务型数据&#xff09;&#xff0c;基于时间…...

Linux-0.11 文件系统bitmap.c详解

Linux-0.11 文件系统bitmap.c详解 模块简介 该模块包含了两对函数&#xff0c;第一对是和i节点相关的free_inode()和new_inode()。第二对是和逻辑块相关的free_block()和new_block()。 函数详解 free_block void free_block(int dev, int block)该函数的作用是释放设备dev…...

【Linux】基本指令,拥抱Linux的第一步

[Linux]常见指令 Linux基本指令指令的本质ls指令pwd指令cd指令touch指令mkdir指令(重要)rmdir&&rm指令(重要)man指令&#xff08;重要&#xff09;cp指令&#xff08;重要&#xff09;mv指令&#xff08;重要&#xff09;重定向cat指令more指令less指令&#xff08;重要…...

CTF 2015: Search Engine-fastbin_dup_into_stack

参考&#xff1a; [1]https://gsgx.me/posts/9447-ctf-2015-search-engine-writeup/ [2]https://blog.csdn.net/weixin_38419913/article/details/103238963(掌握利用点&#xff0c;省略各种逆向细节) [3]https://bbs.kanxue.com/thread-267876.htm&#xff08;逆向调试详解&am…...

DRF之全局异常处理

一、REST framework 提供了异常处理&#xff0c;我们可以自定义异常处理函数 使用方式&#xff1a; from rest_framewoork.views import exception_handerdef custom_exception_handler(exc,context):# 先调用REST framework默认的异常处理方法获得标准错误响应对象response …...

AI创作工具的使用体验报告

下面是AI创作工具的使用体验报告&#xff0c;围绕以下三点展开&#xff1a; 一、工具的使用体验如何&#xff1f; CSDN博客AI创作工具是一款非常易用的工具&#xff0c;操作简单&#xff0c;可以很快地开始创建内容。在使用过程中&#xff0c;我发现它的语言模型很智能&#…...

Leather Dress Collection 网络协议分析与API接口设计规范

Leather Dress Collection 网络协议分析与API接口设计规范 最近在内部项目里&#xff0c;我们接入了好几个类似Leather Dress Collection这样的AI模型服务。一开始大家调用得挺开心&#xff0c;但用着用着问题就来了&#xff1a;有的服务突然响应变慢&#xff0c;有的接口偶尔…...

5步掌握多平台资源捕获:res-downloader全场景应用指南

5步掌握多平台资源捕获&#xff1a;res-downloader全场景应用指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在数字化内…...

sing-box常见问题排查:99%的用户都会遇到的坑

sing-box常见问题排查&#xff1a;99%的用户都会遇到的坑 引言 sing-box作为一款功能强大的通用代理平台&#xff08;The universal proxy platform&#xff09;&#xff0c;在使用过程中难免会遇到各种问题。本文将针对用户最常遇到的配置错误、连接失败、日志分析等问题提供…...

虚拟手柄革命:用vJoy解锁游戏控制的无限可能

虚拟手柄革命&#xff1a;用vJoy解锁游戏控制的无限可能 【免费下载链接】vJoy Virtual Joystick 项目地址: https://gitcode.com/gh_mirrors/vj/vJoy 在数字娱乐的世界里&#xff0c;控制体验往往决定了游戏乐趣的深度。当物理手柄的限制束缚了你的创意&#xff0c;当键…...

17. 杠杆平衡条件探究

6. 杠杆平衡条件探究 功能介绍: 通过动态交互演示杠杆的平衡条件 (F1L1=F2L2F_1L_1 = F_2L_2F1​...

SenseVoice-Small ONNX模型效果惊艳展示:中英粤日韩五语种同步识别样例

SenseVoice-Small ONNX模型效果惊艳展示&#xff1a;中英粤日韩五语种同步识别样例 今天&#xff0c;我想带大家看一个让我眼前一亮的语音识别模型——SenseVoice-Small的ONNX版本。它最吸引我的地方&#xff0c;是能同时识别中文、英文、粤语、日语和韩语&#xff0c;而且速度…...

突破网盘下载限制:八大平台直链获取的高效方案

突破网盘下载限制&#xff1a;八大平台直链获取的高效方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / …...

双通道并用:OpenClaw同时接入gemma-3-12b-it与本地知识库

双通道并用&#xff1a;OpenClaw同时接入gemma-3-12b-it与本地知识库 1. 为什么需要混合架构 在个人自动化场景中&#xff0c;我发现纯粹依赖大模型存在两个痛点&#xff1a;一是高频重复问题消耗大量Token&#xff0c;二是模型对专业领域知识的掌握有限。上个月整理技术文档…...

MusePublic圣光艺苑入门必看:‘凝光成影’技术白皮书——光照建模原理简析

MusePublic圣光艺苑入门必看&#xff1a;‘凝光成影’技术白皮书——光照建模原理简析 “见微知著&#xff0c;凝光成影。在星空的旋律中&#xff0c;重塑大理石的尊严。” 1. 从画室到算法&#xff1a;光照建模的艺术与科学 当你站在一幅梵高的《星空》前&#xff0c;是否曾好…...

OmniVoice:支持600+语言的AI语音合成新突破

OmniVoice&#xff1a;支持600语言的AI语音合成新突破 【免费下载链接】OmniVoice 项目地址: https://ai.gitcode.com/hf_mirrors/k2-fsa/OmniVoice 导语&#xff1a;OmniVoice——一款突破性的多语言文本转语音&#xff08;TTS&#xff09;模型正式亮相&#xff0c;其…...