mybatis-【回顾】

2023-11-06

分页

减少数据得到处理量

limit分页

mybatis实现分页:接口、mapperr.xml、测试

RowBounds类实现分页

分页插件PageHelper

复杂查询环境搭建

导入lombok
建实体类
建mapper接口
简历mapper.xml核心配置恩建注册绑定mapper接口文件

测试

多对一

查询所有学生生对应的老师信息
复杂查询用resultmap
association:对象【子查询,按照查询嵌套处理】
collection:集合

一对多

缓存简介

第一次查出的结果,暂存到内存中
再次查询,直接从内存中查询

mybatis一级缓存

一级缓存默认是开启的,只在一次sqlsession中有效
一级缓存就是一个map
一级缓存也叫本地缓存:SqlSession
与数据库同一次会话期间查询到的数据会放在本地缓存中
以后如果需要获取相同的数据,直接从缓存中拿,没必要再去查询数据库

缓存失效:
缓存使用LRU【最少使用算法】来清除不需要的缓存
查询不同的
增删改操作可能会改变原来的数据,不定刷新缓存

二级缓存

在配置文件中【config】的settings里添加

//显示开启全局缓存
<setting name="cacheEnabled value="true"/>

在要使用二级缓存的mapper中开启,只需要在你的sql映射文件中【mapper.xml】添加一行如下,即可

<cache/>

二级缓存也叫全局缓存,一级缓存作用域太低了,所以诞生了二级缓存
基于namespace级别的缓存,一个名称空间,对应一个二级缓存
工作机制
一个会话查询一条数据,这个数据就会被放在当前会话的一级缓存中
如果当前会话关闭了,这个会话对应的一级缓存就没了,但我们想要的是,会话关闭了,一级缓存中的数据被保存到二级缓存中
新的会话查询信息,就可以从二级缓存中获取内容
不同的mapper查出的数据会放在自己对应的缓存map中

mybatis缓存原理

第一次查询走数据库,查出结果放在一级缓存中
二级缓存开启后,一级缓存关闭后就会存放到二级缓存中

自定义缓存

ehcache:是一种广泛使用的java分布式缓存,主要面向通用缓存【二级缓存,在mapper文件中配置,配置之前需要多导包】

总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mybatis-【回顾】 的相关文章

随机推荐

  • ug12.0安装教程以及UG12许可证安装

    ug12 0安装教程以及UG12许可证安装 附中文版百度云下载地址 知乎 zhihu com 参考该文章 切记 如果忘了修改 安装完成后 计算机右键 属性 高级 环境变量 系统变量中找到SPLM LICENSE 编辑 将值改为27800
  • MMEditing 介绍——注册器

    目录 什么是注册器 注册器工作原理 为什么要用注册器 MMEditing 中的注册器 注册器带来的不便如何解决 什么是注册器 python 的 register 可以理解为一个字典 字典中存储了 class function 的名称和内容
  • UE4之接口

    参考 https docs unrealengine com zh CN Programming UnrealArchitecture Reference Interfaces index html 接口的模式比较固定 下面就上我定义的接口
  • Tomcat中常见线程说明

    本文讲述了Tomcat的常见线程的功能 名称 线程池和配置等信息 其中源码来自于Tomcat 6 0 18 Work线程 功能 HTTP请求的处理线程 非NIO 当有新的http请求进来后 则会从线程池中获得一个线程Work对象 调用Wor
  • 什么是webhook?

    1 什么是webhook webhooks是一个api概念 是微服务api的使用范式之一 也被成为反向api 即 前端不主动发送请求 完全由后端推送 举个常用例子 比如你的好友发了一条朋友圈 后端将这条消息推送给所有其他好友的客户端 就是
  • 国内VS Code下载速度慢

    在知乎上面看到一个非常有效的方法 原链接 国内下载vscode速度慢问题解决 知乎 具体方法如下 1 直接百度搜索VS CODE 点击下载后获取下载链接 2 取出链接 并替换原链接中域名为vscode cdn azure cn 将新链接粘贴
  • 学习Spring

    1 如何学习Spring 你可以通过下列途径学习spring 1 spring下载包中doc目录下的MVC step by step和sample目录下的例子都是比较好的spring开发的例子 2 AppFuse集成了目前最流行的几个开源轻
  • STM32命名规则

    STM32型号命名规则如下 STM32型号的说明 以STM32F103ZET6这个型号的芯片为例 该型号的组成为7个部分 其命名规则如下 1 STM32 STM32代表ARM Cortex M3内核的32位微控制器 2 F F代表芯片子系列
  • Java 基础语法

    使用ide来进行编程 对于java来说 最好的idle 是intellijidea IDEA 通过一个例子练习 idea 一 超市管理系统功能 使用ide来进行编程 java最好的ide 是idea 1 import java util A
  • python--字典概念以及基本使用 -- 小黑学习驿站

    字典应用案例 697条消息 python 商店购物案例 字典篇 小黑学习驿站 小黑日志的博客 CSDN博客 697条消息 python学习 计算学生成绩排名案例 字典篇2 小黑学习驿站 小黑日志的博客 CSDN博客 字典基本概念 映射关系
  • 关于渠道包

    渠道包指的是在各大应用市场 发布的apk包的清单文件中 某个meta data标签下 配置的value不一样 这个标签的作用就是用来区分是哪个市场的 比如你发布到360 这个值就是你就可以配置成360 豌豆荚就可以配置成wandoujia
  • 微信小程序云开发之——网页跳转小程序

    一 微信小程序开通云开发 微信小程序公众平台拿到如下参数 你的小程序信息 小程序 AppID 填入你的小程序 AppID 云开发环境 ID 填入你的开通了静态网站托管的云开发环境 ID 想要拉取的小程序信息 小程序原始账号 ID 填入要跳转
  • 微信小程序授权登录详解

    文章目录 流程 wx login auth code2Session 实战 前端代码 后端代码 流程 说明 调用 wx login 获取 临时登录凭证code 并回传到开发者服务器 调用 auth code2Session 接口 换取 用户
  • 撮合前端平台在低代码平台的落地实践

    在京东技术的发展当下 不同的业务线 不同的区域 甚至于很多触达消费者的端 正在被中台架构能力所支撑 大家都很清楚 中台建设能够带来技术的规模化效应 具有提高业务协同 加速创新和交付速度 提高系统稳定性和可靠性 降低成本和支持业务快速发展等优
  • torch.device函数

    torch device 是 PyTorch 中用于表示计算设备 如CPU或GPU 的类 它允许你在代码中指定你希望在哪个设备上执行张量和模型操作 本文主要介绍了 torch device 函数的用法和功能 本文主要包含以下内容 1 创建设
  • 怎么把一个json文件读取到java中

    要把一个 JSON 文件读取到 Java 中 可以按照以下步骤进行 导入 JSON 库 Java 中常用的 JSON 库有 Jackson Gson Fastjson 等 可以根据个人喜好和项目需求选择相应的库 并导入到项目中 读取 JSO
  • # SSM框架-->Spring

    SSM框架 gt Spring 文章目录 SSM框架 gt Spring 1 1 Spring是什么 简介 1 2 Spring 的发展 1 2 1Spring Framework的特点 1 2 2 Spring的体系结构 1 2 2 1
  • Java深究1

    此篇文章仅代表作者个人所学所悟 并不构成指导指引作用 在这篇博客之前 已经读过相当数量的Java书籍 但一直都没有去总结 如今将自己所学所悟分享出来 Java特种兵 上册 这本书的毕竟是作者的处女座 书中有太多地方感觉很肤浅 也很冗余 内容
  • python实现PCA降维

    概述 本文主要介绍一种降维方法 PCA Principal Component Analysis 主成分分析 降维致力于解决三类问题 1 降维可以缓解维度灾难问题 2 降维可以在压缩数据的同时让信息损失最小化 3 理解几百个维度的数据结构很
  • mybatis-【回顾】

    分页 减少数据得到处理量 limit分页 mybatis实现分页 接口 mapperr xml 测试 RowBounds类实现分页 分页插件PageHelper 复杂查询环境搭建 导入lombok 建实体类 建mapper接口 简历mapp