您的位置:首页>>资讯中心>>学习园地

Java培训之走进Hibernate 的编程世界

image.png

前言

         欢迎各位Java学习爱好者,本系列文章是个人总结的Hibernate的一些重点知识,在这里分享给大家,希望能够帮助到大家更好的学习Java编程,虽然目前使用Hibernate的企业减少了很多,但是由于Hibernate框架的思想依然是ORM框架中的典型代表,而且很多Java培训机构依然将该课程作为主要学习的框架之一,因此掌握Hibernate的核心思想及使用方法对于Java编程人员还是存在必要性的。

 

 

一、预备知识:

1.      两层结构与三层结构

2.      软件分层的含义:

1.物理分层:每一个层次运行在网络的不同节点上

2.逻辑分层:每一个层次由一个单独的软件模块来实现

3.      软件分层的优点:

1.伸缩性:应程序是否能支持更多的用户。例如:可以将不同的层次分布在不同的服务器上,增加硬件资源。

2.可维护性:当需求发生变化时,只需要更改软件的一部分。

3.可扩展性:在现有系统中增加新功能的难度。

4.可重用性:程序的代码没有冗余。 可管理性:将工作分解给不同的开发团队。

4.      模型:描述现实世界的实体。软件开发的不同阶段,需要为目标系统创建不同类型的模型。

1.概念模型:应用在分析阶段。(即:实体模型图)

2.域模型:应用在设计阶段。(即:面向对象)

3.关系数据模型:应用在设计阶段。(即:面向关系)

5.      域对象(Domain Object)即业务对象 Business Object(BO)

域对象的分类:

1.实体域对象(POJO),纯粹的 JAVA 对象。每一个 POJO 对戏都分配唯一的对象标识符(OID, Obejct Identifier),OID 是关系数据库中的主键。

2.过程域对象,指应用程序中的业务逻辑或流程。 事件域对象,介绍略。

6.      域对象之间的关系

1.关联:指对象之间存在一对一、一对多、多对一的关系。又可分为单向关联、双向关联。

2.依赖:指类之间的访问关系,如果类 A 访问类 B 的属性或方法,或者类 A 负责实例化类 B。

3.聚集:指整体与部分的关系,如,人与手的关系。聚集关系与关联关系很相似,但是语 义不同,对于聚集关系,部分类的对象不能单独存在。

4.一般化:指类之间的继承关系。

7.  名词解释-中间件:应用程序与其他软件系统之间的连接管道。

8.  使用 JDBC 的缺点(即为什么要使用 ORM 工具)

1.业务代码和数据访问代码掺杂在一起。

2.程序代码嵌入面向关系的 SQL 语句,使开发人员不能完全运用面向对象的思 维来编写程序。

3.关系数据模型发生变化,需要修改程序代码,增加维护的困难。

4.SQL  语句的错误编译时不能检测这种错误,增加调试困难。

二、Hibernate(冬眠,即对象持久化工具)  作者:Gavin king

1)  开源 O/R 工具(ORM 工具包括对象持久化、事务、缓存等)

2)对 JDBC API 进行了封装,完成原有 JDBC 完成的功能

3)工作在持久层(数据访问层),替代原有的持久层

4)隐藏了关系模型、只是操作对象模型

5)实现了关系模型到对象模型的转换

6)实现了 OOA(面向对象的分析)、OOD(面向对象的设计)、OOP(面向对象的编程) 一体化

三、使用 Hibernate 的好处

1)解决了阻抗不匹配(关系模型与对象模型的不匹配)的问题

2)便于数据库的移植

3)透明持久化(即没有侵入性,不需要继承、实现接口,轻量级框架的重要特点)

四、Java培训其他常见的 O/R 映射工具

1)OJB  (APACHE)

2)EJB  (CMP)

3)JDO(SUN)

4)TOPLINK(ORACLE)

5)MyBits

五、不适合使用 O/R 工具的场合

1)如果需要极高的性能,需要使用数据库特定的特性时。

2)如果需要大量的查询,查询后需要大量的批量更新操作时。

3)如果你的对象之间的关系非常复杂时。

 

 

六、Hibernate 的核心接口

1)Configuration 接口:配置 Hibernate、获取关系和对象的映射文件、启动 Hibernate、 创建 SessionFactory 对象。

2)SessionFactory 接口:初始化 Hibernate、充当数据存储的代理、创建 Session 对象。 它是线程安全的、它是重量级的(一般一个应用创建一个,用来存放预定义的 SQL

语句和映射元数据、可以配置 Hibernate 的二级缓存、存放读取过得数据)

3)Session 接口:负责保存、更新、删除、加载和查询对象。 它不是线程安全的、它是轻量级的(可以配置 Hibernate 一级缓存)

4)Transaction 接口:管理事务。

5)Query 和 Criteria 接口:执行数据库查询。

Query 执行 HQL 查询(面向对象的查询)、Criteria 封装了基于字符串形式的查询。

Java培训


上一篇: Java培训之文档编写工具Typora

下一篇: JSON工具包的使用