mybatis ---1024整合Log4j,延迟加载缓存处理

自定义日志 : 最多是log4j开启日志 。
mybatis ---1024整合Log4j,延迟加载缓存处理
在confg.xml 里面配。
编写配置日志输出文件。

mybatis ---1024整合Log4j,延迟加载缓存处理
stdout 在控制台输出。日志级别:error> warn >info> debug
根据自己的日志及级别打印。打印自己以上的日志。打印该级别以及该级别以上的信息。
建议:在开发时设置debug在运行时设置info 或者以上。

可以通过日志信息详细阅读mabatis执行情况(观察mybatis结果)

延迟加载:一对一 一对多 多对一 多对多。
一对多: 班级对应一个学生。查询时 不采用延迟加载 就是立即加载 查询时会将一对多都查询 ,班级,班级中的所有学生。
一对一:如果想要只查询一得一方 而多的一方先不查询 而是在需要的时候再去查询----->这就是延迟加载。

一对一延迟加载:学生与学生证。 实现一对一再实现延迟加载。也称之为懒加载。
map:mybatis ---1024整合Log4j,延迟加载缓存处理
立即加载在association里面 延迟加载在体内。select column""

mybatis ---1024整合Log4j,延迟加载缓存处理
重新建立一个 然后通过外键cardID 进行连接。
mybatis ---1024整合Log4j,延迟加载缓存处理
先查询学生再在需要的时候查询学生证。通过外键来实现的。在association里面 延迟加载在体内。select column
mybatis ---1024整合Log4j,延迟加载缓存处理
mybatis ---1024整合Log4j,延迟加载缓存处理
Mybatis中使用延迟加载需要先配置;

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

1.查询缓存
一级缓存{
同一个SQLSession对象 进行同一个操作,通过一个图来查询。
mybatis ---1024整合Log4j,延迟加载缓存处理
将zs放入缓存
mybatis ---1024整合Log4j,延迟加载缓存处理
commit()就会将缓存中对象清空了。 将张三从SQLSession中移除。
mybatis ---1024整合Log4j,延迟加载缓存处理

MyBatis默认开启了 一级缓存。

}
二级缓存{
同一个namespace生成的mappe对象。
自带二级缓存
三方提供缓存二级缓存。
namespace就是 接口的全类名。通过接口产生代理对象----->namespace
结论:
mybatis ---1024整合Log4j,延迟加载缓存处理
共享二级缓存 是不是同一个接口 是 就共享不是就不共享 同一个二级缓存对象。先是一级缓存 如果一级缓存搞不定就使用二级缓存对象 不是同一个SQLSession 就用二级缓存拿数据。

mybatis ---1024整合Log4j,延迟加载缓存处理
mybatis ---1024整合Log4j,延迟加载缓存处理
一级缓存就是同一个SQLSession对象 二级缓存是判断是不是来自同一个namespace。
}

默认开启一级缓存 关闭二级缓存 自己手动去开启 二级缓存
mybatis ---1024整合Log4j,延迟加载缓存处理
mybatis ---1024整合Log4j,延迟加载缓存处理
mybatis ---1024整合Log4j,延迟加载缓存处理
总结:如果一级缓存就是用不了二级缓存 使用二级缓存就是同一个namespace 使用一级缓存就是同一个SQLSession

学生序列化该对象放入硬盘里面,序列换本类 父类以及级联属性。
二级实际是存放在硬盘里面。mybatis ---1024整合Log4j,延迟加载缓存处理
mybatis ---1024整合Log4j,延迟加载缓存处理
好多次一级缓存 然后再放进去 要不太啰嗦了麻烦了,这样会很简单的。
mybatis ---1024整合Log4j,延迟加载缓存处理

禁用,清理二级缓存:{
查询两次只查询了一次数据库,禁用二级缓存。关闭之后就要查两次数据库了。默认是true 全局默认关闭 字标签是开启的。第一次没有缓存mybatis ---1024整合Log4j,延迟加载缓存处理
mybatis ---1024整合Log4j,延迟加载缓存处理
命中率:1 . zs:0%
2. 50%
3. 2/3
4. 3/4 。。。。。。。。
在close时候触发 。也就是只有第一次访问不到其他都能访问到。
清理: 与清理一级缓存一样 commit() 在执行增删改缓存就没有了。

专业公司提供三方缓存:
整合实现Cache接口。 必须实现该接口。eCache该接口的默认实现类。

}

2.****{

mybatis ---1024整合Log4j,延迟加载缓存处理
知道一个就能直接出来三个工程 表 类 mapper xml 密切相关。根据表生成其他三个。
实现步骤1. jar包。
2.****的配置文件。xml文件。
mybatis ---1024整合Log4j,延迟加载缓存处理
mybatis ---1024整合Log4j,延迟加载缓存处理
mybatis ---1024整合Log4j,延迟加载缓存处理
mybatis ---1024整合Log4j,延迟加载缓存处理

3,执行。

}