一.Hibernate原理
1:通过configuration来读cfg.xml文件
2:通过configuration得到SessionFactory 工厂,缓存SessionFactory,并且释放掉configuration对象
3:通过SessionFactory 工厂来创建Session实例
4:通过Session打开事务
5:通过session的api操作数据库
6:事务提交
7:关闭连接(结束事务,关闭session)
二.数据库操作:
执行添加:
1:TO--->PO: Hibernate先在缓存中查找,如果发现在内部缓存中已经存在相同id的PO,就认为这个数据已经保存了,抛出例外。
如果缓存中没有,Hibernate会把传入的这个TO对象放到session控制的实例池去,也就是把一个瞬时对象变成了一个持久化对象。
如果需要Hibernate生成主键值,Hibernate就会去生成id并设置到PO上
2:客户端提交事务或者刷新内存
3:根据model类型和cfg.xml中映射文件的注册来找到相应的hbm.xml文件
4:根据hbm.xml文件和model来动态的拼sql,如下:
insert into 表名(来自hbm.xml) (字段名列表(来自hbm.xml )) values(对应的值的列表(根据hbm.xml从传入的model中获取值))
5:真正用JDBC执行sql,把值添加到数据库
6:返回这个PO的id。
三.hibernate关键类的运行原理
1.configuration : 主要负责Hibernate的配置信息。主要包括数据库连接的属性,configuration实例后,会构建SessionFactory实例;如果需要多个数据库连接,就会创建多个sessionFactory实例,大多数是一个数据库对应一个。
2.Session:提供大部分持久化方法,同事也能对事物进行控制(注意:session的设计是一个非线程安全的,一个session实例只能有一个线程使用,否则就会瘫痪)
四.映射文件配置
1.一对一配置:<one-to-one name="" class="" cascade="all" out-join="true"/>
2.一对多:<ont-to-many/>
3.多对多:<many-to-many/>
4.执行数据库操作的主要:Criteria,HQL两种。
5.数据加载方式:(1)即时加载: 实体加载完后就立即加载关联数据 (lazy="false")
(2)延迟加载: 当关联数据被访问时立即加载关联数据。
(3)预先加载: 实体和关联数据一起加载
(4)批量加载:可以进行性能优化。(batch-size)
五.持久化实现:
1.实体对象的3个状态:自由状态,持久状态,游离状态
2.VO与PO的区别:(1)VO是比较独立的实体对象,处在非管理状态;
(2)PO是处在实体管理容器的对象,当事物提交时将反映到数据库中。
(3)如果PO与其对应的session分离,就转变成VO了。
3.数据缓存:(1)事物级缓存:也称内部缓存,基于session的生命周期实现的。session销毁缓存就销毁了。
(2)应用/进程级缓存:由sessionFactory实现,由它创建的session共享缓存,但是缺乏同步机制。
(3)分布式缓存: 主要解决多实例并发运行过程中的数据同步问题。
分享到:
相关推荐
SSH之Hibernate总结 SSH(Struts、Spring、Hibernate)是Java Web开发中常见的三大框架,而Hibernate作为ORM(对象关系映射)框架,是连接Java应用程序与数据库的关键组件。本总结将围绕Hibernate的核心概念、配置...
本资源包含的"hibernate总结练习源码"提供了对Hibernate ORM框架实际应用的实例,有助于深入理解和掌握其核心概念与功能。 1. **对象关系映射(ORM)**:Hibernate 提供了一种机制,将数据库中的表映射为Java类,表...
《Hibernate总结(三)》 在本篇关于Hibernate的总结中,我们将深入探讨这个流行的Java对象关系映射(ORM)框架的关键概念和技术细节。Hibernate作为一款强大的工具,它极大地简化了Java开发人员处理数据库操作的工作...
标题:hibernate总结 描述:此文档是个人在使用Hibernate框架进行数据持久化操作时的经验积累和技巧分享。文档全面覆盖了Hibernate的各种配置方法、数据映射技术、集合类映射、对象关系映射(ORM)基础以及与J2EE...
### Hibernate总结 #### 一、Hibernate简介 Hibernate是一种在Java环境下使用的对象关系映射(ORM)框架,它能够将Java类映射到数据库表,并管理Java应用中的对象关系与SQL数据库之间的转换。Hibernate的主要目标...
### 学习Hibernate总结 #### 一、简介与配置 Hibernate是Java环境下一款优秀的对象关系映射(ORM)框架,它极大地简化了数据访问层(DAL)的编码工作,允许开发人员将主要精力集中在业务逻辑上而不是繁琐的SQL语句...
1. 引入Hibernate所需的JAR文件,例如在Eclipse中创建Hibernate类库。 2. 创建配置文件`hibernate.cfg.xml`,其中包含数据库连接信息、日志格式等。 3. 设计实体类,对应数据库表中的记录,并提供对应的getter和...
**总结项目实战** 在实际项目中,使用 Hibernate 可以简化数据库操作,提高开发效率。常见的应用场景包括用户管理、订单处理、商品分类等。项目实践中要注意合理设计实体关系,避免 N+1 查询问题,利用缓存优化性能...
《Hibernate4总结文档》 Hibernate4作为一款强大的Java对象关系映射框架,简化了数据库操作,使得开发者可以更专注于业务逻辑而不是数据库层面的细节。本文将深入探讨Hibernate4的配置和使用,帮助开发者更好地理解...
总结来说,Hibernate是一个强大的ORM框架,它极大地简化了Java应用的数据库操作,提高了开发效率,并提供了高级特性如缓存、事务管理等。通过深入理解和熟练使用Hibernate,开发者可以构建更高效、更易于维护的...
Hibernate是一个在Java环境中广泛使用的数据持久化工具,它支持对象关系映射(ORM)技术,将Java对象映射到关系型数据库的表中。Hibernate允许开发者通过面向对象的方式来操作数据库,避免了直接使用SQL语句的繁琐...
【Hibernate 简单 PPT 总结】 Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。通过提供一套API和元数据,Hibernate允许开发者将业务对象直接映射到数据库表,从而避免了...