深层剖析java应用开发中MyBayis缓存
目录
- 什么是 MyBatis 缓存
- MyBatis 缓存分类
- 1、?级缓存:SqlSession 级别,默认开启,并且不能关闭。(默认开启)
- 2、二级缓存:Mapper 级别,默认关闭,可以开启。
- 二级缓存如何使用
- 1、MyBatis 自带的二级缓存
- 1.1config.xml 配置开启?级缓存
- 1.2Mapper.xml 中配置?级缓存
- 1.3实体类实现序列化接口
- 2、ehcache 二级缓存(第三方)
- 2.1pom.xml 添加相关依赖
- 2.2添加 ehcache.xml
- 2.3config.xml 配置开启?级缓存
- 2.4 Mapper.xml 中配置?级缓存
什么是 MyBatis 缓存 使?缓存可以减少 Java 应?与数据库的交互次数,从而提升程序的运行效率。?如查询出 id = 1 的对象,第?次查询出之后会自动将该对象保存到缓存中,当下?次查询时,直接从缓存中取出对象即可, 无需再次访问数据库。
【深层剖析java应用开发中MyBayis缓存】
MyBatis 缓存分类
1、?级缓存:SqlSession 级别,默认开启,并且不能关闭。(默认开启)
操作数据库时需要创建 SqlSession 对象,在对象中有?个 HashMap ?于存储缓存数据,不同的 SqlSession 之间缓存数据区域是互不影响的。 ?级缓存的作用域是 SqlSession 范围的,当在同?个 SqlSession 中执?两次相同的 SQL 语句事,第? 次执行完毕会将结果保存到缓存中,第?次查询时直接从缓存中获取。 需要注意的是,如果 SqlSession 执行了 DML 操作(insert、update、delete),MyBatis 必须将缓存清空以保证数据的准确性。
2、二级缓存:Mapper 级别,默认关闭,可以开启。
使??级缓存时,多个 SqlSession 使?同?个 Mapper 的 SQL 语句操作数据库,得到的数据会存在? 级缓存区,同样是使? HashMap 进?数据存储,相?较于?级缓存,?级缓存的范围更?,多个 SqlSession 可以共??级缓存,?级缓存是跨 SqlSession 的。 ?级缓存是多个 SqlSession 共享的,其作?域是 Mapper 的同?个 namespace,不同的 SqlSession 两次执?相同的 namespace 下的 SQL 语句,参数也相等,则第?次执?成功之后会将数据保存到?级 缓存中,第?次可直接从?级缓存中取出数据。
二级缓存如何使用
1、MyBatis 自带的二级缓存
1.1config.xml 配置开启?级缓存
settings>
1.2Mapper.xml 中配置?级缓存
1.3实体类实现序列化接口
@Data@AllArgsConstructor@NoArgsConstructorpublic class Account implements Serializable { private long id; private String username; private String password; private int age; }
2、ehcache 二级缓存(第三方)
2.1pom.xml 添加相关依赖
org.mybatis mybatis-ehcache1.0.0 net.sf.ehcache ehcache-core2.4.3
2.2添加 ehcache.xml
2.3config.xml 配置开启?级缓存
2.4 Mapper.xml 中配置?级缓存
以上就是深层剖析java开发中MyBayis缓存的详细内容,更多关于Mybatis缓存剖析的资料请关注脚本之家其它相关文章!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用
- Java基础-高级特性-枚举实现状态机