`

Hibernate笔记(一):基础概念与Hibernate中对象的三种状态

 
阅读更多
Hibernate 初始化配置:
Configuration cfg = new Configuration();
cfg.configure();
SessionFactory sf = cfg.buildSessionFactory();
Session s = sf.openSession()

HibernateUtils类:
写法

Session的主要方法:
获得指定记录(根据ID):
session.get(User.class, id) 和 session.load(User.class, id)的区别: load是懒加载,该对象在被真正用到时才会真正得到该类的实例

懒加载实际上是new()了一个该类的子类并返回,因此懒加载的类不能是Final的,就是这个道理.
所以在load一个类后,也不要做if(user1!=null) … 类似的代码,因为不可能为空.
但get()方法如果找不到该对象会返回null值

保存记录:
session.save() 和 session.persist()方法的区别: 是否开启事务的区别,persist()必须在事务中,否则不会产生insert语句

saveOrUpdate()和merge() :根据ID和version的值来确定是save还是update,调用merge你的对象还是脱管(游离)的

lock(),取出数据并把对象变成持久对象,但不会同步对象的状态

Hibernate管理的数据对象的几种形态:
先来一张官方图先:


瞬时(Transient):自己new出来的对象有,与DB和Session没有任何关系
持久(persistent):与Session进行了关联,发生任何变化,Session都是知道的。在事务提交时会更新到DB。
脱管(detached):虽然与Session也没有关系了,但它实际上DB中的一条记录。

所以save()针对瞬时对象,update()针对脱管对象
  • 描述: hibernate状态图
  • 大小: 36.2 KB
分享到:
评论

相关推荐

    Hibernate,hibernate笔记

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库。这个框架将数据库操作转化为对Java对象的操作,简化了数据持久化的复杂度。以下是对Hibernate的一些关键知识点的...

    Hibernate学习笔记整理

    1. 说明:把 16,17,18 这三行代码的对象的状态称为临时对象,其特征是该对象与 Hibernate 没有关系。 2. 说明:当执行 19 行代码的时候,person 对象由临时状态转化成持久化状态,这个时候数据库没有对应的数据,...

    韩顺平.2011版.hibernate笔记.zip

    《韩顺平.2011版.hibernate笔记》是一份针对Hibernate框架的详细学习资料,由知名IT讲师韩顺平在2011年编撰而成。Hibernate是Java开发领域中广泛使用的对象关系映射(ORM)框架,它极大地简化了数据库操作,使开发者...

    hibernate笔记.txt

    在深入探讨《hibernate笔记.txt》所提及的关键知识点前,我们先来解析一下标题和描述中的核心概念。“自上而下的依赖,单向依赖,层与层之间最好依赖抽象”,这一描述实际上触及了软件架构设计中的关键原则,特别是...

    马士兵hibernate学习笔记(原版)

    4. **对象的三种状态**:Hibernate中的对象有瞬时态(Transient)、持久态(Persistent)和脱管态(Detached)三种状态,理解这些状态对于理解对象的生命周期和持久化操作至关重要。 5. **关系映射**:Hibernate...

    Hibernate笔记完整版

    《Hibernate笔记完整版》 在Web开发领域,Hibernate作为三大框架之一,扮演着至关重要的角色。本文将全面介绍Hibernate,包括其数据持久化的概念、优缺点对比,以及Hibernate的核心概念和编程步骤。 对象持久化是...

    hibernate第一天笔记

    本文将基于第一天学习Hibernate的笔记,详细解析其基本操作与实现。 首先,引入Hibernate所需的库文件至关重要。这包括Hibernate的核心库以及相应的数据库驱动JAR包。这些库文件提供了对ORM操作的支持,使得Java...

    韩顺平Hibernate笔记

    《韩顺平Hibernate笔记》是一份详尽的关于Hibernate框架的学习资料,由知名IT教育专家韩顺平编撰。Hibernate是Java开发中的一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互,使得开发者可以...

    传智播客 hibernate笔记(word+pdf+源码)

    【传智播客 Hibernate 笔记】是一份深入学习 Hibernate ORM 框架的资源集合,包括了 word 笔记、pdf 讲义、源代码以及相关分析图表和 jar 包,旨在帮助开发者全面理解并掌握 Hibernate 的核心概念与实际应用。...

    Hibernate学习笔记特别详细

    以上便是对Hibernate基础的概览,实际开发中,还需要深入了解实体关系映射、集合映射、级联操作、缓存机制、事务管理、性能优化等方面的知识,才能更好地利用Hibernate提升开发效率并保证应用程序的稳定运行。...

    hibernate笔记

    通过上述步骤和对象的介绍,我们可以看到Hibernate不仅简化了与数据库的交互,而且提供了一种更为优雅的面向对象的编程方式来处理数据持久化问题。这对于提高开发效率、降低维护成本具有重要意义。

    Hibernate笔记 马士兵

    第11课 Hibernate基础配置 15 一、 提纲 15 二、 介绍MYSQL的图形化客户端 16 三、 Hibernate.cfg.xml:hbm2ddl.auto 16 四、 搭建日志环境并配置显示DDL语句 16 五、 搭建Junit环境 16 六、 ehibernate.cfg.xml : ...

    Hibernate学习笔记与总结

    **Hibernate学习笔记与总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库上操作对象数据的便捷方式。本文将深入探讨Hibernate的核心概念、配置、实体类、映射文件、...

    韩顺平hibernate笔记

    通过韩顺平老师的hibernate笔记,你可以系统地学习和掌握Hibernate的核心概念、配置、操作及最佳实践,进一步提升Java开发中的数据库处理能力。这些笔记是视频课程的有力补充,帮助你在理论与实践之间架起桥梁,更好...

    马士兵java框架hibernate学习笔记

    - **Hibernate**:一种开放源代码的对象关系映射解决方案。 - **TopLink**:Oracle公司的对象关系映射工具,后来成为EclipseLink的一部分。 - **JDO (Java Data Objects)**:Java标准的一种持久化技术,提供了一...

Global site tag (gtag.js) - Google Analytics