`
雷博弈
  • 浏览: 17046 次
  • 性别: Icon_minigender_1
  • 来自: 四川
文章分类
社区版块
存档分类
最新评论

hibernate应用中的java对象对象状态

阅读更多
   当程序用new创建一个对象时,这个对象的生命周期就开始了,当不在有任何引用变量引用它时,对象就结束生命周期,JVM的垃圾回收器就会回收它占用的内存。
   对于需要持久化的类,它的生命可能会处于以下三种状态。
       一.临时状态。用new创建,但还没有被持久化,没有在session缓存中。
       二.持久状态。已经持久化,出于Session缓存中。
       三.游离状态。已经持久化,但不处于session缓存中。
       例子:
       Session session = getHibernateTemplate().getSessionFactory()
.openSession();
Transaction tr = null;
Grade grade = null;
try {
tr = session.beginTransaction();
//对象开始生命周期,临时状态。
grade = new Grade();
//处于生命周期中,转变成持久化状态。
session.save(grade);
//在生命周期中,处于持久化状态。
grade.setGrade(111);
tr.commit();
                           //session.flush()
} catch (Exception e) {
if (null != tr)
tr.rollback();
} finally {
//处于生命周期中,转换成游离状态
session.close();
}
  //在生命周期中,处于游离状态
int num = grade.getGrade();
  //结束生命周期
grade = null;
注:
   Session.flush()方法和commit()方法的区别:
   flush()会进行清理缓存的操作,会执行SQL语句。commit()方法首先调用flush()方法,然后提交事务。提交事务意味着数据库的修改被永久的保存下来。
   临时状态和游离状态的区别:
   两者都与session没有关联,游离状态时从持久化状态转换过来的,因此在数据库中有相应的记录,而临时状态在数据库中没有相应的记录。

  
  
分享到:
评论

相关推荐

    精通Hibernate:Java对象持久化详解.zip

    在Java开发中,持久化是将应用程序中的对象状态保存到持久存储介质(如数据库)的过程。Hibernate通过提供一种对象-关系映射机制,使得Java对象可以直接与数据库表进行交互,而无需编写大量的SQL语句。这种映射机制...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     8.3 Java对象在Hibernate持久化层的状态  8.3.1 临时对象的特征  8.3.2 持久化对象的特征  8.3.3 被删除对象的特征  8.3.4 游离对象的特征  8.4 Session接口的详细用法  8.4.1 Session的save()和persist()...

    精通Hibernate:Java对象持久化技术详解

    在Java应用开发中,对象持久化是一个关键环节,它涉及将程序中的对象状态存储到持久化介质(如关系型数据库)中,并在需要时恢复这些状态。Hibernate作为ORM(对象关系映射)框架,通过提供一种面向对象的方式来处理...

    HIBERNATE - 符合Java习惯的关系数据库持久化

    2. **对象状态**:Hibernate管理的对象具有三种状态:瞬时态(Transient)、持久态(Persistent)和脱管态(Detached),它们的状态转换由Hibernate的Session负责。 3. **JMX集成**:允许通过JMX(Java Management ...

    Hibernate 操纵持久化对象

    在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。本篇将详细讲解如何使用Hibernate来操纵持久化对象,这对于深入理解Hibernate的核心概念至关重要。 **一、...

    Java 精通Hibernate对象持久化技术权威指南

    了解实体类、持久化属性、主键、对象状态等基本术语。 2. **配置与环境搭建**:学习如何配置Hibernate,包括hibernate.cfg.xml文件的编写,以及JDBC连接池的设置。 3. **对象关系映射(ORM)**:研究Hibernate的...

    精通Hibernate:Java持久化对象技术详解[第二版]

    8. **实体生命周期**:详解Hibernate对对象状态的管理,包括瞬时态、持久态、游离态和脱管态,以及对象状态转换和事件监听器。 9. **多态和继承映射**:讲解如何处理类的继承关系,实现多态查询,包括单表继承、...

    (高清版)精通 Hibernate_Java 对象持久化技术详解(第2版).pdf

    - **概念**:对象持久化是指将程序中的对象状态保存到外部存储介质的过程,以便在系统重启后仍然可以恢复这些对象的状态。 - **实现方式**:在Java中,常见的对象持久化方式包括使用Java序列化机制、XML文件、数据库...

    Hibernate操作持久化对象

    Hibernate是一个基于JDBC的ORM框架,它通过XML或注解定义对象-关系映射,将Java对象转换为数据库记录,反之亦然。它封装了JDBC,提供了更高级别的API,使得数据库操作更加简单和高效。Hibernate支持多种数据库,包括...

    精通Hibernate:java对象持久化技术

    【精通Hibernate:Java对象持久化技术】主要涵盖了Java应用程序的分层体系结构、软件模型以及对象持久化的概念,特别是如何使用Hibernate这一ORM框架进行持久化操作。以下是详细的知识点解析: 1. **应用程序分层...

    Hibernate持久化对象的生命周期

    - 当使用`new`关键字创建一个新的Java对象时,该对象是瞬时的。这意味着它们与数据库没有任何关联。如果对象不再被引用,它们会被垃圾回收器回收。瞬时对象不处于任何Session的缓存中,数据库中也没有对应的记录。...

    Hibernate对象状态以及各种保存方法的区别

    Hibernate 是一个流行的 Java 开发框架,用于简化数据库...理解 Hibernate 对象状态及其转换对于有效管理和优化数据库操作至关重要。正确使用这些状态和保存方法能够避免数据冗余和丢失,提高应用的性能和数据一致性。

    Hibernate中对象的三种状态

    它们没有持久化标识(ID),在Hibernate的眼里,这些对象就像普通的Java对象,如果程序结束或者对象引用丢失,这些对象就会被垃圾回收器清除,数据不会保存到数据库中。在Hibernate中,通过`new`关键字创建的对象...

    java Hibernate 中文API文档

    1. **对象关系映射(ORM)**:Hibernate通过ORM机制,将Java对象转换为数据库中的记录,反之亦然。这样,程序员可以使用面向对象的方式处理数据库操作,降低了数据库操作的复杂性。 2. **Session接口**:Hibernate...

    基于Hibernate的Java对象持久化技术分析--农户征信管理平台的设计

    【标题】基于Hibernate的Java对象持久化技术在农户征信管理平台设计中的应用 【内容详解】 在现代软件开发中,数据库管理和数据持久化是至关重要的环节。Hibernate作为一款优秀的Java对象关系映射(ORM)框架,极...

    hibernate应用开发完全手册(源码)

    1. **对象关系映射(ORM)**:Hibernate的核心在于ORM,它通过XML配置或注解方式定义对象与数据库表的映射关系,使得Java对象可以直接在数据库中持久化。 2. **Session接口**:Hibernate中的Session是数据库会话的...

    hibernate:java持久化对象详解02

    为了使一个Java对象成为持久化对象,我们需要使用Hibernate的注解或XML配置文件来定义映射。注解方式更简洁,例如,`@Entity`表示这个类是一个实体,`@Table(name="users")`指定对应的数据库表,`@Id`和`@...

    Hibernate的Java控制台程序Demo

    1. **Hibernate框架**:Hibernate是一个开源的Java ORM框架,它简化了Java应用与关系数据库之间的交互,通过将Java对象映射到数据库表,实现了对象的持久化。 2. **配置文件**:在Hibernate Tryout项目中,`...

Global site tag (gtag.js) - Google Analytics