06-Mybatis-我学到了什么

starrylsi
2024-10-02 / 0 评论 / 9 阅读 / 正在检测是否收录...
总结Mybatis
sqlsession 会话级别的一级缓存,mapper应用级别的二级缓存

mybatis的常用配置参数

为什么要使用mybatis

动态sql的帮我们完成了什么

  1. if 判断
  2. choose when otherwise 从多个条件中选取一个
  3. foreach 集合进行遍历
  4. where 元素只会在子元素返回任何内容的情况下才插入 “WHERE” 子句。而且,若子句的开头为 “AND” 或 “OR”,where 元素也会将它们去除。
  5. set 元素会动态地在行首插入 SET 关键字,并会删掉额外的逗号(这些逗号是在使用条件语句给列赋值时引入的)。
  6. trim 可以动态在包含的语句前面和后面添加内容。也可以去掉前面或者后面给定的内容
    prefix 前面添加内容
    suffix 后面添加内容
    suffixOverrides 去掉的后面内容
    prefixOverrides 去掉的前面内容

理解mybatis的缓存

缓存:缓存指的是将经常访问的数据保存到一个高速的数据存储区。缓存的目的就是为了快速访问
一级缓存: 指的是将数据保存一以SqlSession中(同一个SqlSession)
二级缓存: 指的是将数据保存到mapper中(同一个sqlSessionFactory)

一级缓存失效的四种情况

1.不在同一个SqlSession对象中
2.执行语句的参数不同。缓存中也不存在数据。
3.执行增,删,改,语句,会清空掉缓存
4.手动清空缓存数据

二级缓存使用步骤

myBatis的二级缓存默认是不开启的。我们需要在mybatis的核心配置文件中配置setting选项 和 在Mapper的配置文件中加入cache标签。并且需要被二级缓存的对象必须要实现java的序列化接口。

缓存的使用顺序说明

  1. 当我们执行一个查询语句的时候。mybatis会先去二级缓存中查询数据。如果二级缓存中没有。就到一级缓存中查找。
  2. 如果二级缓存和一级缓存都没有。就发sql语句到数据库中去查询。
  3. 查询出来之后马上把数据保存到一级缓存中。
  4. 当SqlSession关闭的时候,会把一级缓存中的数据保存到二级缓存中。
0

评论 (0)

取消