Java培训之走进Hibernate 的编程世界
前言
欢迎各位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工具包的使用