mybat 中的缓存,多对多

Posted 苦逼的人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybat 中的缓存,多对多相关的知识,希望对你有一定的参考价值。

1.多对多
// 查询某个老师教的所有学生集合
Teacher
----》List<Student>
Student
2.主加载和关联查询
Dept
关联对象的加载时机:
1.直接加载 dept和emps 两条sql都执行
2.侵入式延迟
3.深度延迟

cglib:
<!--cglib-->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
3.缓存 迅雷下载小电影,
缓存文件
咱们探讨的缓存在内存中。

一级缓存:MyBatis中一级默认是内置的,一级缓存不能卸载。

缓存目的不是为了共享查询结果 。sqlid+select * from dept

二级缓存的属性
eviction:缓存中保存对象的清理策略
FIFO:First in first out 先进先出
数据结构:队列
栈:先进后出
LRU:least Recently used 最近最少使用的对象
flushInterval:刷新间隔


Setting this to true will cause the local and 2nd level
caches to be flushed whenever this statement is
called. Default: false for select statements.

将此设置为 true 将导致本地和第二级别
无论何时此语句都将刷新缓存
称为.默认值: 选择语句为 true。

 

 

1.flushCache="false" 只对二级缓存有效,一级缓存无效
2.useCache="true"

Setting this to true will cause the results of this
statement to be cached in 2nd level cache. Default:
true for select statements.

3.Mybatis内置的二级缓存。第三方EhCache。
1.ehcache-core 1.2.3
2.mybatis-ehcache 1.0.0
3.slf4j 1.7.25
4.slf-log4j 1.7.25

5.mybatis 3.4.1

 

4.设置二级缓存的两个位置

ehcache.xml中default节

以上是关于mybat 中的缓存,多对多的主要内容,如果未能解决你的问题,请参考以下文章

多对多关系中的缓存更新

Hibernate多表关系配置——多对多对关系映射

Hibernate映射( 多对一对一对多多对多)的配置方法

总结一下数据库的 一对多多对一对多对多 关系

EF基础知识小记五(一对多多对多处理)

框架 day32 Hibernate,一级缓存,关联关系映射(一对多,多对多)