hibernate与mybaitis缓存对比

hibernate的一级缓存为session,是内置缓存,不可卸载。

二级缓存为sessionFactory,包含了内置缓存和外置缓存,sessionFactory控制的进程级缓存。是全局共享的缓存,凡是会调用二级缓存的查询方法 都会从中受益。当查询时候,会首先查询一级缓存中的数据,如果没有再去二级缓存的查找。如果还没有就去数据库中查询。当使用hibernate对数据库数据做增删改操作时,同时会更新缓存。当然这也包括二级缓存!

mybatis的一级缓存为sqlsession。一级缓存的设计是每个sqlsession单独使用一个缓存空间,不同的sqlsession是不能互相访问数据的。当然,在sqlsession关闭后,其中数据自然被清空

二级缓存是namespace作用域。这里的原则是,如果开启了二级缓存,那么在关闭sqlsession后,会把该sqlsession一级缓存中的数据添加到namespace的二级缓存中。

一般来说,JDBC不会缓存数据的,除非是很特殊的JDBC驱动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值