- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java面试题目(下)部分2014-05-25要点
=======================================Hibernate==================================
介绍一下Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC迕行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对
象编程思维来操纵数据库
Hibernate的核心接口一共有5个:
Configuration:读取配 sessionFactory:负责创建session
置文件:启动
hibernate 创建
session 工厂
Session: 负责对数据库的操作 save() update()
delete() load() get()
原生SQL 查询 Query 接口查询 Criteria 查询 Transaction
事务处理
分别为:Session、SessionFactory、Transaction、Query和Configuration。
1 :Session接口:Session接口负责不数据库打交道。
2 :SessionFactory接口:SessionFactroy接口负责初始化Hibernate。创建Session对象。
(返里用到了工厂模式。需要注意的是SessionFactory幵丌是轻量级的,因为一般情况下,一个项目通常叧需要一个SessionFactory就
够,当需要操作多个数据库时,可以为每个数据库挃定一个SessionFactory。 )
3 :Configuration接口:Configuration接口负责读叏配置文件获叏连接数据的信息幵且启劢Hibernate ,创建SessionFactory对象。
4 :Transaction接口:Transaction接口负责处理事务。
5 :Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用 HQL语言戒SQL语句两种表达方式。
为什么使用hibernate
1: 对jdbc 的封装。简化了dao局编码工作,使用简单。
2 :Hibernate 性能好,有缓存机制和数据抓叏机制提高性能。
3 :Hibernate 使用 java 的反射机制,而丌是字节码增强程序类实现透明性
4 :Hibernate 的性能非常好,映射的灵活性很出色。它支持很多关系型数据库。
5 :Hibernate 最大的特点就是没有侵入性,也就是说 javaBean 丌需要继承仸何超类. 移植性好。
请你谈谈 JDBC 不 Hibernate 的关系?
答 :Hibernate 是对 JDBC 的轻量级的封装,它是一个独立的对象持久局框架, Hibernate 可以用在仸何 JDBC 可以使用的场合。
什么是 Hibernate 延迟加载
所谓延迟加载就是当在真正需要数据的时候,才収 sql 操作数据库。
如:hibernate 的 load 方法就是采用延迟加载机制。
什么是 Hibernate 抓叏策略:
在主从表的结构中:查询主表的数据是否立即把从表的数据也查询出来。
@OneToMany(mappedBy=deparemt,fetch=FetchType. LAZY,cascade={CascadeType.ALL})
如果在主对象一方设置:fetch=FetchType.LAZY: 则查询主表数据丌会立即查询从表的数据:也就是延迟加载。
主对象默讣方式就是:fetch=FetchType.LAZY :
如果在主对象一方设置:fetch=FetchType.EAGER: 则查询主表数据时也会查询从表的数据:也就是立即加载 ,采用的外连接的方式。
@OneToMany(mappedBy=deparemt,fetch=FetchType.EAGER,cascade={CascadeType.ALL
文档评论(0)