理解Hibernate:持久化类与实例创建

需积分: 9 1 下载量 193 浏览量 更新于2024-08-23 收藏 2.51MB PPT 举报
"这篇教程介绍了Hibernate的基础知识,包括如何创建持久化类以及使用Hibernate操作数据库的方法,如保存、删除、更新等。同时提到了newInstance()方法与new关键字的区别,并涉及Java事务API(JTA)的概念。" 在Java编程中,初始化类并生成实例有两种常见方法:`newInstance()` 和 `new` 关键字。`new` 关键字是直接创建类的实例,而`newInstance()` 是通过反射机制来创建对象。两者的主要区别在于,`new` 直接执行类的构造函数,而`newInstance()` 需要确保类已经被加载和连接。`newInstance()` 的使用通常涉及到动态加载类,允许程序在运行时决定要创建哪个类的对象,这在设计上提高了灵活性和可扩展性。 Hibernate 是一个流行的Java对象关系映射(ORM)框架,它简化了数据库操作。在这个简单实例中,`Stu` 类被定义为一个持久化类,具有`id`、`xm`(姓名)、`sex`(性别)和`sr`(出生日期)属性,以及对应的getter和setter方法。这些属性将映射到数据库中的列,使得Hibernate能够将对象与数据库记录关联起来。 Java事务API(JTA)是Java平台上的标准接口,用于管理分布式事务处理。在Hibernate中,事务管理是核心功能之一,确保数据的一致性和完整性。游离状态的实例指的是未与Hibernate会话关联的对象,而持久化状态的实例则是与当前会话关联的。Hibernate提供了多种方法来在这些状态之间转换: 1. `save()` 或 `persist()`:将游离状态的实例持久化到数据库,触发SQL INSERT操作。 2. `delete()`:将持久化实例标记为待删除,实际删除发生在事务提交时,触发SQL DELETE操作。 3. `update()` 或 `merge()`:更新持久化实例,如果对象是游离状态,则将其变为持久化状态并更新,触发SQL UPDATE操作。 4. `saveOrUpdate()` 或 `replicate()`:根据对象的状态决定执行INSERT或UPDATE操作。 5. `lock()`:锁定一个对象,防止其他事务对其进行修改。 查询方面,Hibernate提供了HQL(Hibernate Query Language)和SQL查询。示例中的SQL查询展示了如何使用`session.createSQLQuery()` 执行原始SQL语句并获取结果列表。获取的结果可以是对象数组,可以进一步处理和打印。 这篇教程涵盖了Hibernate的基础,包括持久化类的创建、对象状态管理以及基本的数据库操作,这些都是使用Hibernate进行数据库交互时必须掌握的关键概念。