Struts2+Spring4.0+Hibernate4.0 学习之三

接下来主要学习Hibernate持久层:

通过使用Hibernate持久层,可以避免使用传统的JDBC方式来操作数据库,通过利用Hibernate提供的O/R Mapping支持,从而允许程序使用面向对象的方式来操作关系数据库,,保证了整个软件开发过程以面向对象的方式进行,即面向分析,面向对象设计,面向对象编程。

a.设计持久化实体

面向对象分析,是指根据系统需求提取应用中的对象,将这些对象抽象成类,再抽取出需要持久化保存的类,这些需要持久化保存的类就是持久化对象(PO)。该系统并没有预先设计数据库,而是完全从面向对象开始,设计了7个持久化类。

1.Application:对应普通员工的考勤提出申请,包括申请理由,是否被批复及申请改变的类型等属性。

2.Attend:对应每天的考勤,包含考勤时间,考勤员工,是否上班及考勤类别等信息。

3.AttendType:对应考勤的类别,包含考勤的名称,如迟到,早退等名称。

4.CheckBack:对应批复,包含该批复对应的申请,是否通过申请,由那个经理完成批复等属性。

5.Employee:对应系统的员工信息,包含员工的用户名,密码,工资以及对应的经理等属性。

6.Manager:对应系统的经理信息,仅包含经理管理的部门名。实际上,Manager继承了Employee类,因此该类同样包含Employee的所有属性。

7.Payment:对应每月所发的薪水信息,包含发薪的月份,领薪的员工及薪资数等信息。

当采用贫血模式的架构模型时,系统中的领域对象十分简洁,它们都是单纯的数据类,不需要考虑到底应该包含哪些业务逻辑方法,因此开发起来非常便捷;

可观世界中的对象不是孤立存在的,以上7个PO类也不是孤立存在的。它们之间存在复杂的关联关系。分析关联关系既是面向对象分析的必要步骤,也是Hibernate进行持久化操作的必经之路。这7个PO的关联关系如下。

这7个PO之间的类关系图:

b.创建持久化实体类

从上图可以看出,持久化对象之间的关联关系以成员变量的方式表现出来,当然,这些成员变量同样需要setter和getter方法的支持,持久化类之间的关联关系通常对应数据库里的主,外键约束。

首先学习一下即将用到的一些知识,持久化要求,Hibernate采用地侵入式设计,但是应该遵循如下规则:

1.提供一个无参数的构造器,Hibernate就可以使用Constructor.newInstance()来创建持久化类的实例。

2.提供一个标识属性:标识属性通常映射数据库表的主键字段。

使用持久化注解将POJO变成PO类。

@Entity:被该注解修饰的POJO就是一个实体。

@Table:该注解指定持久化类多映射的表。

Hibernate完全可以理解面向对象的继承,多态等慨念,一旦建立了正确的继承映射,程序就能以面向对象的方式进行数据库的访问。

Hibernate的SessionFactory可持有一个可选的二级缓存,通过使用这种二级缓存可以提高Hibernate的持久化访问的性能。

下一节主要学习创建持久化实体类的代码;

学习资料:轻量级Java EE

失败是成功的亲娘,没有失败哪来的成功呢?诺贝尔如果不经历千万次的失败,

Struts2+Spring4.0+Hibernate4.0 学习之三

相关文章:

你感兴趣的文章:

标签云: