hibernate和mybatis缓存

相同:

1.都分为两级缓存,一级缓存和二级缓存,一级缓存都是session事务级别的,在一个事务中有效,事务执行完后缓存失效

2.一般用户不需要干涉一级缓存,默认一级缓存时开启的

3.二级缓存都可以自定义配置,手动设置开启或者关闭

4.mybatis可以针对mapper中某一个statement设置是否使用二级缓存

5.二级缓存都可以通过配置使用EHCache(可持久化到硬盘)

不同:

1.hibernate的二级缓存时应用进程级别的,整个应用进程查询相同的sql时会使用二级缓存中的数据;mybatis是相同namespace下的mapper文件中的sql缓存,可以让多个sqlSession共享,但不是应用程序级别

2.mybatis的相同namespace下的mapper中如果有增删改的操作,会自动清空二级缓存的内容

你可能感兴趣的:(hibernate和mybatis缓存)