关于缓存的一些总结

1.常见的数据层访问方式比较

JDBC

         java原生的关系型数据库访问方式

  •  每次操作数据库都需要获取连接关闭连接,在大量访问数据库时,频繁的开关连接消耗性能
  •  需要手动编写sql,有学习成本
  •  查询出的结果需要手动进行封装到bean
  •  没有缓存处理机制
  •  sql语句写死在程序中,需要修改sql必须修改源文件

Hibernate

          基于面向对象理念设计的DAO层框架,基本理念就是维护对象到表的映射关系,通 过操作对象操作表中的数据,从而可以减少甚至杜绝sql的使用

  •    相对比较沉重,效率不好
  •    当涉及到比较复杂的查询时Hibernate的操作对象的方式用起来非常麻烦,甚至无法实现,只能用sql操作
  •    底层需要频繁的拼接sql,产生大量冗余的sql

MyBatis

       是一种半自动对象-表映射关系的DAO层框架,可以自动的进行对象的封装,但是sql
仍然需要自己来写。

 

2.数据库缓存的实现

    jdbc没有缓存处理机制

    MyBatis:

    一级缓存:(默认开启,可关闭)

      缓存只在一个事务中有效,即同一个事务中先后执行多次同一个查询,
      只在第一次真正去查库,并将结果缓存,之后的查询都直接获取缓存中
      的中数据。如果是不同的事务,则缓存无效。

    二级缓存:(默认关闭)

     缓存在全局有效,一个事务查询一个sql得到结果,会被缓存起来,之后
     只要缓存未被清楚,则其他事务如果查询同一个sql,得到的将会是之前
     缓存的结果。二级缓存作用范围大,作用时间长,可能造成的危害也更
     大,所以在开发中一般很少启用Mybatis的二级缓存。

    第三方工具实现的缓存:

    Redis内存数据库..

     未完待续.........

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值