ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java job interview:Hibernate开放源代码的对象关系映射框架解析

2021-10-04 14:05:37  阅读:122  来源: 互联网

标签:缓存 Java 映射 对象 数据库 Hibernate 源代码


●Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
●2006年,J2EE5.0标准正式发布以后,持久化框架标准Java Persistent API(简称JPA)基本上是参考Hibernate实现的,而Hibernate在3.2版本开始,已经完全兼容JPA标准。
●Hibernate是一个以LGPL(Lesser GNU Public License)许可证形式发布的开源项目。在Hibernate官网上有下载Hibernate包的说明。Hibernate包以源代码或者二进制的形式提供。
●编程工具
●Eclipse:一个开放源代码的、基于Java的可扩展开发平台。
●NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。
●IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。
●MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境。
●EditPlus:如果正确配置Java的编译器“Javac”以及解释器“Java”后,可直接使用EditPlus编译执行Java程序。

●将对数据库的操作转换为对Java对象的操作,从而简化开发。通过修改一个“持久化”对象的属性从而修改数据库表中对应的记录数据。
●提供线程和进程两个级别的缓存提升应用程序性能。
●有丰富的映射方式将Java对象之间的关系转换为数据库表之间的关系。
●屏蔽不同数据库实现之间的差异。在Hibernate中只需要通过“方言”的形式指定当前使用的数据库,就可以根据底层数据库的实际情况生成适合的SQL语句。
●非侵入式:Hibernate不要求持久化类实现任何接口或继承任何类,POJO即可。

●hibernate优点:
●封装了jdbc,简化了很多重复性代码。
●简化了DAO层编码工作,使开发更对象化了。
●移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。
●支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。

●hibernate 类与类之间关系
●关联关系
●聚集关系
●继承关系

●Hibernate继承关系映射策略分为三种:
●一张表对应一整棵类继承树
●一个类对应一张表
●每一个具体类对应一张表。

●Hibernate是一个开源的对象关系映射(ORM)框架。对JDBC进行了非常轻量级的对象封装。
●将对象和数据库表建立映射关系,Hibernate框架使用在数据持久化层(dao)。
●ORM:对象关系映射(英语:Object Relational Mapping)
●采用映射元数据(配置文件)来描述对象-关系的映射细节。ORM框架通过配置文件将实体对象和数据库表对应起来。

●Hibernate的API一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。通过这些接口,可以对持久化对象进行存取、事务控制。
●Hibernate 中提供了两级Cache(高速缓冲存储器),第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或集群范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。
●初用HIBERNATE的人也许都遇到过性能问题,实现同一功能,用HIBERNATE与用JDBC性能相差十几倍很正常,如果不及早调整,很可能影响整个项目的进度。 大体上,对于HIBERNATE性能调优的主要考虑点如下:
●数据库设计调整
●HQL优化
●API的正确使用(如根据不同的业务类型选用不同的集合及查询API)
●主配置参数(日志,查询缓存,fetch_size, batch_size等)
●映射文件优化(ID生成策略,二级缓存,延迟加载,关联优化)
●一级缓存的管理
●针对二级缓存,还有许多特有的策略
●事务控制策略。

●数据库设计
● 降低关联的复杂性
● 尽量不使用联合主键
● ID的生成机制,不同的数据库所提供的机制并不完全一样
● 适当的冗余数据,不过分追求高范式

● Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
● Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现,它很大程度的简化了dao层编码工作。

标签:缓存,Java,映射,对象,数据库,Hibernate,源代码
来源: https://blog.csdn.net/blog_programb/article/details/120438819

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有