首页 > 其他分享 >Mybatis_缓存知识

Mybatis_缓存知识

时间:2023-02-20 00:33:04浏览次数:45  
标签:缓存 同一个 对象 标签 知识 factory session Mybatis

应用程序与数据库进行交互,相对耗时,通过缓存查询结果,可以在一定程度上减少此耗时。

 


 

在SQL映射文件中,一个select标签对应的一个statement对象。(以下session指的是SqlSession,factory指的是SqlSessionFactory)


 

一级缓存

Mybatis是默认开启一级缓存的。

即Session缓存,同一个session对象执行同一个statement对象时,会优先从缓存中读取。

 

注意:就算标签内查询语句相同,如果不是同一个标签,即不为同一个statement对象,则不会在缓存中查到。


 

二级缓存

在factory层面的缓存。

通过某个factory创建的session对象,在它commit或者close之后,会把自己的缓存提交给factory缓存。

此时同一个factory创建的其它session对象就能够读取这些缓存。

 

注意:当session对象未提交或关闭时,不会把自己的缓存提交到factory缓存中。

开启二级缓存:

  在sql映射文件中使用标签cache,设置readOnly属性为true。

<cache readOnly="true"></cache>

 

标签:缓存,同一个,对象,标签,知识,factory,session,Mybatis
From: https://www.cnblogs.com/lurenjia-bky/p/17136018.html

相关文章

  • Mybatis-Plus无法将字段更新为null的原因及解决方法。
    问题描述用Mybatis-Plus的update()或者updateById()来更新数据时,无法将字段设置为null值(更新后数据还是原来的值)。原因概述    默认情况下,Mybatis-Plu......
  • maven 自动生成mybatis代码
    <!--dependency和plugin中jar的版本根据自己需求选择,但同一个jar版本要保持一致--><!--配置在dependencies中--><dependency><groupId>org.mybatis.gener......
  • mybatis操作数据库
    mybatis介绍mybatis不会对应用程序或者数据库的现有设计强加任何影响。sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。mybatis结构操......
  • 指针和字符串基础知识
    #include"stdafx.h"intmain(intargc,char*argv[]){//定义字符串的第一种方式,此种定义的字符可修改chara[]="it";a[0]='T';printf("%s\n",a);//定义字......
  • 指针和数组基础知识
    /*数组元素的访问方式1、数组名[下标]2、指针量名[下标]3、*(p+i)p+1,指针+1,则指针指向的地址加4*/#include"stdafx.h"voidchangeNum(int*array);intmain(intargc,char......
  • 10.MyBatis-Plus的使用
    整合MyBatis-Plus导入依赖在解决逆向工程生成的代码报错时候已经给bianen-common导入了依赖导入数据库的驱动导入驱动和MySql的版本有关,我安装的MySql版本是5.7.36打......
  • JavaScript知识汇总
    1JavaScript功能直接写入HTML输出流(在HTML输出中使用document.write,如在文档加载后使用该方法会覆盖整个文档)对事件进行响应(如鼠标事件、键盘事件等)改变HTML内......
  • HTML入门知识点
     一:HTML元素 <html><body><h1>我的第一个标题</h1><p>我的第一个段落。</p><ahref="http://www.w3school.com.cn">Thisisalin......
  • pwntools基础知识
    pwntools基础知识连接:本地process()里面放文件名例如process('./test');远程remote(,),remote接受url并指定端口,remote('url',端口)。数据处理:主要对整数进行打包,就是......
  • MyBatis面试题
    MyBatis面试题1、什么是Mybatis?1、Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接......