如果不配置hibernate的二级缓存的话,是不是就体现不出hibernate的优越性
hibernate的一级缓存是默认的,而且只能在同一个session下才有效果,session关闭后,一级缓存出随着被清除,感觉一级缓存用到的似乎不是很多。如果不配置二级...
hibernate的一级缓存是默认的,而且只能在同一个session下才有效果,session关闭后,一级缓存出随着被清除,感觉一级缓存用到的似乎不是很多。如果不配置二级缓存的话,就好像没有体现出hibernate缓存机制的优越性。
现在升级的一个项目就是使用默认的一级缓存,但是系统的性能很低,这跟一级缓存应该没有关系吧,或者说与hibernate应该没有关系吧
问题有点多,还望大神不吝赐教! 展开
现在升级的一个项目就是使用默认的一级缓存,但是系统的性能很低,这跟一级缓存应该没有关系吧,或者说与hibernate应该没有关系吧
问题有点多,还望大神不吝赐教! 展开
展开全部
从二级缓存的简单介绍和hibernate的优势两方面回答:
(1)二级缓存
1)hibernate缓存分session级和二级缓存。二级缓存在内存和磁盘之间;缓存的好处就是可以防止频繁的访问数据库;
2)为什么需要二级缓存呢?
因为一级缓存有限,一级缓存生命周期短,所以需要二级缓存来弥补这些问题。
3)二级缓存的原理图
4)二级缓存的对象可能放在内存中,也可能放在磁盘上。
(2)hibernate的优势
1)如果一个公司里不用框架,切换数据库需要重写编写sql;使用jdbcc操作数据库,sql语句编写比较麻烦PreparedStatement(?,?);set(1,?);set(2,?);
2)数据库本身是体系关系型的,而业务成是对象模型,这就会出现一个阻抗问题。这就需要一个桥来 搭建对象模型和关系模型之间,即持久层。业务逻辑(hql:hibernatequery language)——数据持久层(hibernate(hibernate api;hibernate.cfg.xml核心配置文件;对象关系映射文件))——sql数据库
3)耦合性小;通用性强;对象化;性能保证(优化);鲁棒性增加
展开全部
完全不正确, hibernate 的优越性体现在其卓越 ORM 上面。而且其相比于 Mybatis 更是一个全自动化的 ORM 框架。 即,既能够完成 O ——》 R 的自动化映射,也能完成 R——》O 的自动化映射。 对象 到 关系数据库,反之关系数据库 到 对象 全部自动帮你映射。 这才是 hibernate 的最大优越性,让你像操作普通对象一样就完成 entity 的 CRUD
追问
请问一下你对一级缓存、二级缓存和查询缓存的理解?
追答
一级缓存作用范围为 session ,使用范围不是很广。
二级缓存作用于整个系统生命周期,适用范围广,也更能称为传统意义上的缓存
查询缓存又可以分为 数据库查询缓存,和 系统级的缓存解决方案 (通用缓存中的一小块)
查询缓存就是 sql 级别的缓存,例如 一条 高级查询的 sql 发过来之后 将你结果缓存, 下次你再回溯到之前已经查询的页码的时候, 直接将结果返回给你即可。 不需要再 select 数据库
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-11-19 · 知道合伙人软件行家
关注
展开全部
二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache或者memcache等一般项目 都会引入一个缓存的框架进行统一管理的 而且 这些更容易进行集群 你想提高系统性能可以看下这方面的资料 个人推荐memcache。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的,如果hibernate不配置缓存的话,失去了一部分性能,但也并不是必须配置,看项目的具体需要,hibernate毕竟以ORM出名。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不一定啊,二级缓存是你用到的时候才配置,hibernate的主要优点在于封装了对数据库的操作,使用起来方便很多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询