hibernate面试问题集锦-概述-java开发java经验技巧

hibernate面试问题集锦-概述-java开发java经验技巧

ID:30776050

大小:51.50 KB

页数:7页

时间:2019-01-03

hibernate面试问题集锦-概述-java开发java经验技巧_第1页
hibernate面试问题集锦-概述-java开发java经验技巧_第2页
hibernate面试问题集锦-概述-java开发java经验技巧_第3页
hibernate面试问题集锦-概述-java开发java经验技巧_第4页
hibernate面试问题集锦-概述-java开发java经验技巧_第5页
资源描述:

《hibernate面试问题集锦-概述-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Hibernate面试问题集锦:概述-Java开发Java经验技巧Hibernate面试问题集锦:概述木文作者:ImportNew・朱伟杰未经许可,禁止转载!TmportNew注:本文是TmportNew编译整理的Java面试题系列文章之一。你口J以从这里查看全部的Java面试系列。Q.怎么配置Hibernate?A.Configuration酉己置hibernate,cfg.xinl(或者hibernate.properties)以及映射文件*・hbm.xml来创建(例如,配置和引导hibernat

2、e)SessionFactory,然后SessionFactory创建Session的实例。Session的实例是持久层服务对夕卜提供的主要接口。hibernate,cfg.xml(或者你也可以使用hibernate,properties):这两个文件都是用来配置hibernate服务(数据库连接的骡动类,连接URL,用户名,密码,方言等)。如果这两个文件同吋存在于classpath里的话,那么hibernate,cfg.xml会覆盖hibernate,properties文件里的配置。映射文件(*・

3、hbm.xml):这些文件都是用来对持久层对象和关系数据库进行映射的。最好的方式是对每个对象都使用单独的映射文件(例如一个类一个文件),因为如果在一个文件里存放大量的持久层对象,那么这个文件就变得非常难管理和维护。约定的命名方式是映射文件名和持久层类名(POJO)保持一致。例如,Account,class的映射文件名为Account,hbm.xml。或者,你也可以在类文件的代码里加上hibernate的注解,从而不需要使用配置文件。Q.什么是SessionFactory?它是线程安全的吗?A.Sess

4、ionFactory对应Hibernate的一个数据存储的概念,并且它是线程安全的,可以被多个线程并发访问,也叮以请求session和单个数据库的不可变编译过的映射的缓存。SessionFactory—*般只会在启动的时候构建。对于应用代码,最好对SessionFactory通过单例的模式进行封装以便于访问。SessionFactorySessionFactory=newConfiguration().configin、e().buildSessionfactory();Q.Session是什么?两个

5、线程能共享同一个session吗?A.Session是一个轻量级非线程安全的对象(线程间不能共享session),它表示与数据库进行交互的一个工作单元。Session是被SessionFactory创建的,在任务完成Z后它会被关闭。Session是持久层服务对外提供的主要接口。Session会延迟获取数据库连接(也就是在需要的时候才会获取)。为了避免创建太多的session,可以使用ThreadLocal来取得当前的session,无论你调用多少次currentSession()方法,返回的都是同一个

6、session。下面是示例代码:publicclassHibernateUt订{publicstaticfinalThreadLocallocal二newThreadLocal();publicstaticSessioncurrentSession()throwsIlibernateException{Sessionsession=(Session)local,get();//openanewsessionifthisthreadhasnosessionif(session==null){sessio

7、n二sessionFactory.openSession();local,set(session);returnsession;冇一点很重要的就是如果一个工作单元完成了,你需要关闭你的session。注意:保持你的HibernateSessionAPI简单易用。比较常见的场景是,hibernate会和Spring框架一起使用,通过IlibcrneitcTcniplEitc來整合。Q.解释hibernate对象的状态?解释hibernate对象的牛命周期?A.持久层(persistent)对象和集合都是

8、存活吋间短暂的单线程对象,它们保存持久层的状态。这些对象的状态会根据你的刷新规则(例如,一旦冇setXXXO方法被调用了就口动刷新,或者有数据项从集合、列表等删除时就刷新,你也可以通过session,flush()和transaction,commit()这两个函数调用来定义你自己的同步策略)来与数据库保持同步。如果你从一个持久层的集合(例如Set)里删除一项,那么它要么被立即从数据库里删除,或者当flushO或则commit()方法被调用时删除,具体的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。