`

hibernate3.0学习笔记一

阅读更多

使用Hibernate的好处
* 生产力提高
* 更对象化 OOP 设计对象化OOD
* 透明持久化使用侵入性少
* HQL使移植性更好

不好的地方
* 不能实现批量查询统计修改,删除等操作

Hibernate 核心接口
* SeesionFactory 是线程安全
* SeesionFactory获取很耗时,所以一般只获取一次
* 获取方法
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
//创建SessionFactory
SessionFactory factory = cfg.buildSessionFactory();
* session 是非线程安全的
session = factory.openSession();

* Transaction事务有
* JDBC事务 同一Connection内部
session.beginTransaction();
session.getTransaction().commit();
session.getTransaction().rollback();
* JTA事务 跨数据库事务

* Interceptor拦截器 没有侵入性
* UserType 自定义 类型转化 有转换器的概念


持久化对象的生命周期(lifecycle)
Transient [trænziənt] 短暂的; 片刻的; 转瞬即逝的
Persistent [pəˈsistənt] 持续的; 不断的
Detached [diˈtætʃt]] 分离的, 远离的

Transient Object瞬时对象(new之后没有跟数据库关联)
* 在数据库没有与之匹配的数据
* 没有纳入session的管理

Persistent Object持久对象
* 在数据库中有对应记录数据
* 纳入了Session的统一管理
* 在清理缓存(脏数据检查 commit)的时候,会和数据库数据同步

Detached Object 离线对象 session关闭之后的对象
* 在数据库中有对应记录数据
* 没有纳入session的管理


Hibernate的CRUD操作
session获取数据的方式get和load方法的区别:get不支持lazy;load支持lazy
session.get(Class clazz, Serializable id)
* 当数据不存在时候 返回null

session.load(Class clazz, Serializable id)
* 使用load方法 不会发出查询sql,因为load方法实现了lazy(懒加载或延迟加载)
* 延迟加载:只有真正使用对象的时候,才加载(发出sql语句)
* hibernate延迟加载实现原理就是代理方式(CGLIB)
* 当数据不存在是不返回任何信息,当开始开始使用对象时候就会抛出ObjectNotFoundException异常

session.update
* 如果是手动构造对象update的话,必须手动构造对象在数据库中有对应数据,而且构造完全对象,
* 否则没有构造的属性update之后会变成null
* 所以update操作最好是先获取对象然后再update

 

分享到:
评论

相关推荐

    Spring3.0学习笔记

    尚学堂的Spring学习笔记.doc可能包含对这些特性的详细解释、实例代码以及如何在实际项目中应用的指导,对于想要深入理解Spring 3.0的开发者来说是一份宝贵的参考资料。通过阅读这份笔记,你可以系统地学习Spring 3.0...

    hibernate3.2学习笔记

    ### Hibernate 3.2 学习笔记:一对一主键关联详解 #### 一、一对一主键关联概述 在本节中,我们将详细探讨 Hibernate 3.2 中的一对一关联关系,尤其是通过主键实现的双向关联。这种关联通常出现在需要紧密绑定两个...

    hibernate学习笔记01

    ### Hibernate学习笔记01 #### 一、Hibernate简介与安装 **Hibernate** 是一款开源的对象关系映射(Object Relational Mapping, ORM)框架,它能够有效地简化Java应用程序与数据库之间的交互,提供了一种更为优雅...

    hibernate学习笔记

    这篇学习笔记将深入探讨Hibernate的基础和关键特性,包括其核心概念、配置、注解使用以及ORM的核心原理。 1. **Hibernate概述** Hibernate是一个开源的ORM框架,由Gavin King创建,它通过提供一个接口,让开发者...

    hibernate 笔记

    本文主要基于一份关于 Hibernate 的学习笔记,详细阐述 Hibernate 的基本配置流程及常见问题。 #### 二、Java 配置 Hibernate 配置 Hibernate 并不是一项特别复杂的工作,但需要注意一些细节,否则很容易出现错误...

    Hibernate入门笔记

    ### Hibernate入门知识点详解 #### 一、环境搭建与配置 **1.1 搭建环境** - **项目创建:** 首先,新建一个Java项目,命名为`HibernateDemo`。...接下来,可以进一步学习如何使用Hibernate进行数据的增删改查操作。

    hibernate项目笔记

    在Java开发领域,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,将Java对象与数据库表之间的映射过程自动化。这篇“Hibernate项目笔记”可能涵盖了使用Hibernate进行数据库操作的核心概念...

    软件工程师学习笔记大全(C++,JAVA)4.rar

    这份名为“软件工程师学习笔记大全(C++,JAVA)4.rar”的压缩文件包含了软件工程师在学习C++和Java编程语言时的重要参考资料。这些文档详细涵盖了从基础到高级的各种主题,对于提升技能和准备面试非常有帮助。以下...

Global site tag (gtag.js) - Google Analytics