总结Mybatis
sqlsession 会话级别的一级缓存,mapper应用级别的二级缓存
mybatis的常用配置参数
为什么要使用mybatis
动态sql的帮我们完成了什么
- if 判断
- choose when otherwise 从多个条件中选取一个
- foreach 集合进行遍历
- where 元素只会在子元素返回任何内容的情况下才插入 “WHERE” 子句。而且,若子句的开头为 “AND” 或 “OR”,where 元素也会将它们去除。
- set 元素会动态地在行首插入 SET 关键字,并会删掉额外的逗号(这些逗号是在使用条件语句给列赋值时引入的)。
- trim 可以动态在包含的语句前面和后面添加内容。也可以去掉前面或者后面给定的内容
prefix 前面添加内容
suffix 后面添加内容
suffixOverrides 去掉的后面内容
prefixOverrides 去掉的前面内容
理解mybatis的缓存
缓存:缓存指的是将经常访问的数据保存到一个高速的数据存储区。缓存的目的就是为了快速访问
一级缓存: 指的是将数据保存一以SqlSession中(同一个SqlSession)
二级缓存: 指的是将数据保存到mapper中(同一个sqlSessionFactory)
一级缓存失效的四种情况
1.不在同一个SqlSession对象中
2.执行语句的参数不同。缓存中也不存在数据。
3.执行增,删,改,语句,会清空掉缓存
4.手动清空缓存数据
二级缓存使用步骤
myBatis的二级缓存默认是不开启的。我们需要在mybatis的核心配置文件中配置setting选项 和 在Mapper的配置文件中加入cache标签。并且需要被二级缓存的对象必须要实现java的序列化接口。
缓存的使用顺序说明
- 当我们执行一个查询语句的时候。mybatis会先去二级缓存中查询数据。如果二级缓存中没有。就到一级缓存中查找。
- 如果二级缓存和一级缓存都没有。就发sql语句到数据库中去查询。
- 查询出来之后马上把数据保存到一级缓存中。
- 当SqlSession关闭的时候,会把一级缓存中的数据保存到二级缓存中。
评论 (0)