请选择 进入手机版 | 继续访问电脑版

HTML5星空

练习08.31|每日一练Java编程笔试面试题

[复制链接]
发表于 2017-8-31 16:50:01 | 显示全部楼层 |阅读模式



简答题

1Jdo是什么?





每天的题目答案会在第二天揭晓

关注公众号

随时随地学习编程知识。

昨日题目及答案:

简答题

1、介绍一下 Hibernate 的二级缓存


答:


按照以下思路来回答:

1. 首先说清楚什么是缓存;

2. 再说有了 hibernate的Session 就是一级缓存,即有了一级缓存,为什么还要有二级缓存;

3. 最后再说如何配置 Hibernate 的二级缓存。


1. 缓存就是把以前从数据库中查询出来和使用过的对象保存在内存中(一个数据结构中),这个数据结构通常是或类似 Hashmap,当以后要使用某个对象时,先查询缓存中是否有这个对象,如果有则使用缓存中的对象,如果没有则去查询数据库,并将查询出来的对象保存在缓存中,以便下次使用。


2. Hibernate的Session 就是一种缓存,我们通常将之称为 Hibernate的 一级缓存,当想使用 session 从数据库中查询出一个对象时,Session 也是先从自己内部查看是否存在这个对象,存在则直接返回,不存在才去访问数据库,并将查询的结果保存在自己内部。


由于 Session 代表一次会话过程,一个 Session 与一个数据库连接相关连,所以 Session 最好不要长时间保持打开,通常仅用于一个事务当中,在事务结束时就应关闭。


并且 Session 是线程不安全的,被多个线程共享时容易出现问题。通常只有那种全局意义上的缓存才是真正的缓存应用,才有较大的缓存价值,因此,Hibernate 的 Session 这一级缓存的缓存作用并不明显,应用价值不大。


Hibernate 的二级缓存就是要为 Hibernate 配置一种全局缓存,让多个线程和多个事务都可以共享这个缓存。我们希望的是一个人使用过,其他人也可以使用,session 没有这种效果。


3. 二级缓存是独立于 Hibernate 的软件部件,属于第三方的产品,多个厂商和组织都提供有缓存产品,例如,EHCache 和 OSCache 等等。


在Hibernate中使用二级缓存,首先就要在 hibernate.cfg.xml 配置文件中配置使用哪个厂家的缓存产品,接着需要配置该缓存产品自己的配置文件,最后要配置 Hibernate 中的哪些实体对象要纳入到二级缓存的管理中。


明白了二级缓存原理和有了这个思路后,很容易配置起 Hibernate 的二级缓存。


扩展知识:一个 SessionFactory 可以关联一个二级缓存,也即一个二级缓存只能负责缓存一个数据库中的数据,当使用 Hibernate 的二级缓存后,注意不要有其他的应用或 SessionFactory 来更改当前数据库中的数据,这样缓存的数据就会与数据库中的实际数据不一致。



尚学堂IT培训--8月开班时间

Java--零基础入门就业班


开课时间:

2017年8月29日   

已满


电话:029-62258374  

地址:陕西省西安市高新区科技二路西安软件园天泽大厦五楼


免费听课时间

每周一、四、六

在公众号主页发送【试听】获取免费听课名额


一个有用的公众号


尚学堂java培训

     Android

     web前端

     培训基地

长按关注

亲爱的同学们:

      尚学堂java培训开班前有免费试听课程,想学习又不太确定的同学们赶紧联系老师,获取免费试听名额(每个班级的名额是有限的哦,速联速得)。

    获取方式:打开【尚学堂java培训】公众号,点击-精品课程-我要试听-联系老师获取免费试听名额;或直接联系公众号,让“万能”的小编为您解决一切问题!





点击下方"阅读原文"获取免费听课名额

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快讯
发布主题 快速回复 返回列表

     京ICP备14042305号

html5star team © 2012-2013 html5星空 Comsenz Inc.

GMT+8, 2017-11-25 02:39 , Processed in 0.168724 second(s), 34 queries .

快速回复 返回顶部 返回列表