MyBatis缓存分为一级缓存和二级缓存
一级缓存 在 SqlSession上
二级缓存 在 SqlSessionFactory上
如何配置一级缓存??
默认开启, 需要注意:只有关闭或者清除缓存才会消失哦~
// sqlSession.clearCache();//清除
// sqlSession.close();//关闭
如何配置二级缓存??
①在beanMapper.xml上开启cache
...
关于cache更多的了解可以看看下面这张图
另外注意:在MyBatis核心配置文件中 下面的配置可以不用配,我们了解一下,知道有它就好了~
...
②关联的所有bean类都需要实现序列化接口
public class bean类名 implements Serializable { ... }
ex:
另外补充一点
序列化原理 --> 能够把java对象转变成二进制!! 同时能够从二进制还原成java对象!!
什么时候需要实现序列化??
- 在网络中直接传输一个java对象。(webservice)
- 在数据库的Blob字段(列)中,直接存一个java对象(医院cs系统)
- 当前,需要把java对象放入内存(本地的临时文件)中
java.io.ObjectInputStream
java.io.ObjectOutputStream
4.HttpSession里面存放对象,tomcat的内存不足的时候,钝化到硬盘