Hibernate应用_课堂.ppt

Hibernate应用_课堂

Hibernate关系映射 在面向对象设计和实体模型关系中,对象间关系一般包括4种:一对一(one-to-one)、一对多(one-to-many)、多对一(many-to-one)、多对多(many-to-many) 对象是现实世界中具有唯一性的事物 一对一关联类型 :主键关联与唯一外键关联 一对一的主键关联形式是两张关联表通过主键形成一对一映射关系 唯一外键关联是两张表的主键值不同,使用一个新添加的字段来作为外键维持一对一关系 单向一对多只需在“一”的一方进行配置,反之就是单向多对一 双向一对多就是对单向一对多的一种改进 4.3 Hibernate关系映射 4.3.1 一对一关联 1. 共享主键方式 在注册某个论坛会员的时候,往往不但要填写登录账号和密码,还要填写其他的详细信息,这两部分信息通常会放在不同的表中,如表4.1、表4.2所示。 4.3.1 一对一关联 登录表和详细信息表属于典型的一对一关联关系,可按共享主键方式进行。步骤如下: ① 创建Java项目,命名为“Hibernate_mapping”。 ② 添加Hibernate开发能力,步骤同4.2.1节第4步。HibernateSessionFactory类同样位于org.util包下。 ③ 编写生成数据库表对应的Java类对象和映射文件。 Login表对应的POJO类Login.java: 4.3.1 一对一关联 Detail表对应的Detail.java: 4.3.1 一对一关联 Login表与Login类的ORM映射文件Login.hbm.xml。 4.3.1 一对一关联 Detail表与Detail类的ORM映射文件Detail.hbm.xml: 4.3.1 一对一关联 ④ 在hibernate.cfg.xml文件中加入配置映射文件的语句。 ⑤ 创建测试类。 在src文件夹下创建包test,在该包下建立测试类 “Test.java”。 4.3.1 一对一关联 ⑥ 运行程序,测试结果。 因为该程序为Java Application,所以可以直接运行。在完全没有操作数据库的情况下,程序就完成了对数据的插入。插入数据后,Login表和Detail表的内容如图4.12、图4.13所示。 4.3.1 一对一关联 2. 唯一外键方式 唯一外键的情况很多,例如,每个人对应一个房间。其实在很多情况下,可以是几个人住在同一个房间里面,就是多对一的关系。但是如果把这个多变成唯一,也就是说让一个人住一个房间,就变成了一对一的关系了,这就是前面说的一对一的关系其实是多对一关联关系的一种特殊情况。对应的Person表和Room表如表4.3、表4.4所示。 4.3.1 一对一关联 步骤如下: ① 在项目Hibernate_mapping的org.model包下编写生成数据库表对应的Java类对象和映射文件。 4.3.1 一对一关联 Person表与Person类的ORM映射文件Person.hbm.xml: 4.3.1 一对一关联 Room表与Room类的ORM映射文件Room.hbm.xml: 4.3.1 一对一关联 ② 在hibernate.cfg.xml文件中加入如下的配置映射文件的语句。 ③ 编写测试代码。在src文件夹下的包test的Test类中加入如下代码: 4.3.1 一对一关联 ④ 运行程序,测试结果。 因为该程序为Java Application,所以可以直接运行。在完全没有操作数据库的情况下,程序就完成了对数据的插入。插入数据后,Person表和Room表的内容如图4.14、图4.15所示。 4.3.2 多对一单向关联 只要把上例中的一对一的唯一外键关联实例稍微修改就可以变成多对一。步骤如下: ① 在项目Hibernate_mapping的org.model包下编写生成数据库表对应的Java类对象和映射文件。其对应表不变,Person表对应的类也不变,对应的Person.hbm.xml文件修改如下: 4.3.2 多对一单向关联 而Room表不变,对应的POJO类如下: Room表与Room类的ORM映射文件Room.hbm.xml如下: 4.3.2 多对一单向关联 ② 编写测试代码。 在src文件夹下的包test的Test类中加入如下代码: 4.3.2 多对一单向关联 ③ 运行程序,测试结果。 因为该程序为Java Application,所以可以直接运行。在完全没有操作数据库的情况下,程序就完成了对数据的插入。插入数据后,Person表和Room表的内容如图4.16、图4.17所示。 4.3.3 一对多双向关联 下面通过修改4.3.2节的例子来完成双向多对一的实现。步骤如下: ① 在项目Hiber

文档评论(0)

1亿VIP精品文档

相关文档