Mybatis框架相关问题

news2024/9/24 5:24:48

HashMap相关问题

Mybatis框架相关问题

  • 一、MyBatis框架是如何实现分页的?
  • 二、MyBatis框架里面的缓存机制是怎么回事?
    • 一级缓存
    • 二级缓存

一、MyBatis框架是如何实现分页的?

分页分为两种:

  • 逻辑分页:将所有数据查询出来,再在内存中进行分页处理;
  • 物理分页:直接在数据库中进行分页;

具体实现:

  • 1、自己写SQL进行分页;(物理分页)
  • 2、使用拦截器进行分页;(物理分页)
  • 3、使用PageHelper进行分页;(物理分页)
  • 4、使用RowBounds进行分页;(逻辑分页)

二、MyBatis框架里面的缓存机制是怎么回事?

MyBatis中有两级缓存:一级缓存二级缓存

一级缓存

在这里插入图片描述

1、一级缓存是SqlSession级别的缓存, 通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会再从数据库查询;

2、一级缓存是默认开启的,是不能关闭的,但可以调用SqlSession的clearCache()方法清理缓存;

3、不同SqlSession之间的缓存数据是隔离的,即一个SqlSession中的缓存数据在另一个SqlSession中是读取不到的;

4、一级缓存的作用范围可以配置两种:

  • local-cache-scope: statement —— 一级缓存失效
  • local-cache-scope: session —— 默认

一级缓存失效的几种情况:

1、不同的SqlSession对应不同的一级缓存;
2、同一个SqlSession但是查询条件不同;
3、同一个SqlSession两次查询期间执行了任何一次增删改操作;
4、同一个SqlSession两次查询期间手动清空了缓存;

二级缓存

二级缓存在SqlSession提交或关闭后才生效;
在这里插入图片描述

二级缓存默认是关闭的,开启二级缓存,需要同时有如下两项:

application.yml

mybatis:
	configuration:
		cache-enabled: true

Mapper.xml

<cache/>
  • 二级缓存是跨SqlSession的,多个SqlSession可以共用同一个二级缓存;

  • 二级缓存是mapper级别的缓存,根据mappernamespace区分,两个mappernamespace相同,则这两个mapper执行 sql 查询到的数据将缓存到相同的二级缓存区域中;

  • 使用二级缓存的 POJO 类要实现Serializable接口;

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

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

相关文章

CBA全明星急需改革但先不谈!不如先学学如何尊重球迷

直播吧指定地址&#xff1a;www.bjcenn.com 3月4日讯 昨晚CBA全明星正赛&#xff0c;南区明星队138-122击败北区明星队。 媒体人三土带刺更博长文总结了本次全明星&#xff0c;原文如下&#xff1a; 如何总结这次全明星&#xff1f; 又一届CBA全明星周末结束&#xff0c;关…

9.10目标和(LC494-M)

算法&#xff1a; 加法的绝对值的集合left 减法的绝对值的集合right nums集合的总和sum 这里的left和right都是绝对值&#xff1a; leftrightsum → rightsum-left left-righttarget → left-(sum-left) target → left (target sum)/2 &#xff0c;target …

充电桩组装行业生产管理MES系统解决方案

充电桩组装行业MES系统是一个综合生产管理系统&#xff0c;融合了工厂企业必要的销售、物流和制造管理等全公司基础业务以及生产计划和现场监测管理。通过结合工业物联网(IIoT)解决方案&#xff0c;将所有重要生产设备进行关联&#xff0c;实现工厂数字化、可视化管理。通过系统…

云计算 2月28号 (linux的磁盘分区)

一 存储管理 主要知识点: 基本分区、逻辑卷LVM、EXT3/4/XFS文件系统、RAID 初识硬盘 机械 HDD 固态 SSD SSD的优势 SSD采用电子存储介质进行数据存储和读取的一种技术&#xff0c;拥有极高的存储性能&#xff0c;被认为是存储技术发展的未来新星。 与传统硬盘相比&#xff0c…

Python - getpass

文章目录 关于 getpass基本使用语法说明其它 关于 getpass getpass 是 Python 自带标准库 Python 官方文档 - getpass https://docs.python.org/3/library/getpass.html 基本使用 我们在看视频教程中&#xff0c;老师如果不想在代码中暴露 token、密码之类的信息&#xff0c…

day03_Vue_Element

文章目录 01.Ajax1.1 Ajax 概述1.2 同步异步1.3 原生Ajax 2. Axios2.1 Axios的基本使用2.2 Axios快速入门2.3请求方法的别名2.4 案例 3 前后台分离开发3.1 前后台分离开发介绍 04 YAPI4.1 YAPI介绍4.2 接口文档管理 05 前端工程化5.1 前端工程化介绍5.2 前端工程化入门5.2.1 环…

深度学习GPU环境安装(WINDOWS安装NVIDIA)

1.检测是否支持GPU环境 1.1.打开设备管理器 winows下面搜索设备管理器&#xff08;或者从桌面"此电脑"——>右键点击——>"管理"打开&#xff09; 1.2.查看本地显卡 在"设备管理器"——"显示适配器"中&#xff0c;如果没有&…

Jupyter Notebook运行Python代码如何传参

在Jupyter Notebook中&#xff0c;运行Python源代码非常方便&#xff0c;但是如何模拟命令行方式运行时的输入参数呢&#xff1f; 如果直接使用sys.argv会出现错误。例如使用argv[1]时出现&#xff1a; 导致上述错误的原因为&#xff1a;在Jupyter Notebook中运行Python代码时&…

python--开心篇--print--多种多样的print输出

文章目录 名言输出绕口令输出《水浒传》中的梁山好汉输出轨道交通充值信息输出对联字符画输出长春地铁1号线运行图模拟12306查询界面模拟企业网站登录界面 名言 print("& "*15) print("& &") print("& …

还在犹豫学不学?鸿蒙技术是否有前途的最强信号来了

2024年3月3日 上午10 点&#xff0c;深圳官方账号发布了一篇关于鸿蒙技术发展的重要文章&#xff0c;看到这篇文章后我非常激动&#xff0c;忍不住和大家分享一下&#xff01; 华为鸿蒙系统自提出以来&#xff0c;网友们的态度各不相同&#xff0c;有嘲笑“安卓套壳”的&#x…

SpringBoot整合rabbitmq-重复消费问题

说明&#xff1a;重复消费的原因大致是生产者将信息A发送到队列中&#xff0c;消费者监听到消息A后开始处理业务&#xff0c;业务处理完成后&#xff0c;监听在告知rabbitmq消息A已经被消费完成途中中断&#xff0c;也就时说我已经处理完业务&#xff0c;而队列中还存在当前消息…

动态规划DP之背包问题4---分组背包问题

目录 DP分析&#xff1a; 例题&#xff1a; 01背包&#xff1a; 一种物品只有一件 动态规划DP之背包问题1---01背包问题-CSDN博客 完全背包&#xff1a;一种物品有无限件 动态规划DP之背包问题2---完全背包问题-CSDN博客 多重背包&#xff1a;一种物品有有限…

Avalonia学习(二十九)-仪表

Avalonia制作仪表盘&#xff0c;把控件给大家演示一下&#xff0c;Avalonia有三类自定义控件&#xff0c;分别是用户控件、模版控件、自主控件。前面已经很多用户控件了&#xff0c;这个是演示模版控件&#xff0c;另外一种不知道哪种情况下使用。 前端代码&#xff1a; <…

常用的java反编译工具介绍

在软件开发和逆向工程领域&#xff0c;反编译工具是一个重要的工具&#xff0c;它们可以帮助开发者理解、分析和修改编译后的Java字节码文件&#xff08;.class文件&#xff09;。这些工具通常用于以下几个目的&#xff1a; 1. 调试&#xff1a;帮助开发者理解字节码的…

CloudCanal x Hive 构建高效的实时数仓

简述 CloudCanal 最近对于全周期数据流动进行了初步探索&#xff0c;打通了Hive 目标端的实时同步&#xff0c;为实时数仓的构建提供了支持&#xff0c;这篇文章简要做下分享。 基于临时表的增量合并方式基于 HDFS 文件写入方式临时表统一 Schema任务级的临时表 基于临时表的…

华为手环 8:返校季新宠,助力高效学习与健康生活

随着春节假期的结束&#xff0c;学生们也纷纷踏上了返校的旅途。新的学期&#xff0c;新的气象&#xff0c;让华为手环8为你的带来全新的智能生活体验。它不仅仅是一款风格多变的时尚手环&#xff0c;还拥有了智能消息提醒、100多种运动模式和睡眠监测等强大功能&#xff0c;让…

Linux 实现打印彩色进度条

文章目录 预备知识一、理解回车换行二、认识行缓冲1、代码一、二&#xff08;回车换行理解&#xff09;2、代码三、四&#xff08;sleep函数和ffush函数理解&#xff09; 三、简单倒计时1. 倒计时代码2、效果展示 四、进度条1、效果展示2、进度条代码makefileProcessBar.hProce…

【数据结构和算法初阶(C语言)】双向循环带头链表的增删查改详解(天才设计的链表结构,应用简单逆天!!!!!)

目录 ​编辑​编辑 1.双向链表的定义&#xff1a;前赴后继 2.带头链表的定义-----哨兵位 3.增删查改 3.1创建新节点函数----方便后续增加节点调用 3.2创建哨兵位----创建头结点 3.3增加节点&#xff0c;尾部插入数据 3.4尾删除 3.5查找函数----遍历对比&#xff…

程序人生:当看到男友学测试拿高薪后,我突然悟了......

Hello&#xff0c;大家好&#xff0c;我是小雨 认识软件测试是因为我男朋友&#xff0c;他在华测教育培训软测后出去就业非常不错&#xff0c;所以我也萌生了转行的想法&#xff0c;当时我的想法是&#xff0c;他都能学会&#xff0c;那我肯定没问题&#xff0c;所以在他的介绍…

【编程系列----编译文件解析】Program size: Code, RO-data , RW-data, ZI-data

1.先给个 axf 文件 转编译bin文件的代码 2.解析下编译文件MAP 先给个编译提示 Code 是代码占用的空间 RO-data是 Read Only 只读常量的大小&#xff0c;如const型 RW-data是&#xff08;Read Write&#xff09; RW是可读可写变量&#xff0c;就是初始化时候就已经赋值了的&a…