Hibernate教程:Person.hbm.xml映射详解与ORM实践

需积分: 0 1 下载量 124 浏览量 更新于2024-08-18 收藏 4.94MB PPT 举报
在Hibernate教程的PPT版中,讲解了Person.hbm.xml映射文件的使用,它是Hibernate框架中实现对象关系映射(Object-Relational Mapping, ORM)的关键组成部分。该文件定义了一个名为Person的Java类与其在数据库中的对应表"person"之间的映射关系。 1. **Person.hbm.xml映射结构**: - 文件以XML格式定义,遵循Hibernate Mapping DTD 3.0规范。 - `<hibernate-mapping>`标签标志着配置的开始,`<class>`标签用于声明一个Java实体类,这里是`com.cn.vo.Person`,映射到数据库表"person"。 - `<id>`元素表示主键,这里使用的是"native"生成策略,表示数据库会自动生成主键。 - `<property>`元素定义了一个名为"name"的属性,对应数据库中的"name"列,类型为字符串。 - `<many-to-one>`标签定义了一个单向关联,"room"属性引用的是另一个Java实体类Room,通过"room_id"列与Room表关联。设置`cascade="all"`表示级联操作,当保存Person时,会同时保存相关的Room对象,`unique="true"`则表明room_id字段是唯一的外键。 2. **唯一外键方式**: 在这里,通过`unique="true"`设置了room_id字段为外键约束,确保每个Person对象的room_id值在整个Person表中是唯一的,这有助于维护数据完整性。 3. **对象关系映射(ORM)介绍**: ORM解决了面向对象语言(如Java)和关系数据库之间的映射问题,它提供了一种桥梁,使得开发者可以在Java中操作对象,而无需直接处理SQL语句。Hibernate是其中一种流行的ORM框架,它将对象的状态管理和数据库操作分离,提高了开发效率和代码可维护性。 4. **ORM的优点**: - 提高生产效率:减少了手动编写SQL的工作量。 - 可维护性:代码更简洁,易于维护。 - 性能:由于抽象了底层操作,可以优化执行效率。 - 商业独立性:不同的ORM框架可以应用于不同的数据库系统。 5. **ORM持久层方案比较**: - JDBC和SQL:虽然基础且成熟,但代码复杂,维护困难。 - EntityBean/CMP(EJB1.1-EJB3):存在设计问题,依赖性强,不支持多态关联查询。 - JDO:简单但不够成熟。 - Apache OJB:性能稳定,来自Apache基金会,但文档少,标准过多成为负担。 - iBATIS:提供更细粒度的数据库操作控制,但可能牺牲部分性能。 总结来说,这个教程详细讲解了如何使用Hibernate的映射文件来定义Java对象和数据库表之间的关系,展示了如何通过Person.hbm.xml实现对象关系映射,以及ORM框架在实际开发中的优势和选择持久层方案时的权衡。