hibernate工作原理:
1、通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件。
2、由hibernate.cfg.xml中的<mappingresource="com/xx/User.hbm.xml"/>读取解析映射信息。
3、通过config.buildSessionFactory();//得到sessionFactory。
4、sessionFactory.openSession();//得到session。
5、session.beginTransaction();//开启事务。
6、persistent operate;
7、session.getTransaction().commit();//提交事务
8、关闭session;
9、关闭sessionFactory;
hibernate优点:
1、封装了jdbc,简化了很多重复性代码。
2、简化了DAO层编码工作,使开发更对象化了。
4、支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。
hibernate延迟加载:
get不支持延迟加载,load支持延迟加载。
2、hibernate3对 提供了属性的延迟加载功能
hibernate延迟加载就是当使用session.load(User.class,1)或者session.createQuery()查询对象或者属性的时候
Hibernate的缓存机制
一级缓存:session级的缓存也叫事务级的缓存,只缓存实体,生命周期和session一致。不能对其进行管理。
不用显示的调用。
二级缓存:sessionFactory缓存,也叫进程级的缓存,使用第3方插件实现的,也值缓存实体,生命周期和sessionFactory一致,可以进行管理。
首先配置第3方插件,我们用的是EHCache,在hibernate.cfg.xml文件中加入
<propertyname="hibernate.cache.user_second_level_cache">true</property>
在映射中也要显示的调用,<cacheusage="read-only"/>
二级缓存之查询缓存:对普通属性进行缓存。如果关联的表发生了修改,那么查询缓存的生命周期也结束了。
在程序中必须手动启用查询缓存:query.setCacheable(true);
优化Hibernate
1、使用一对多的双向关联,尽量从多的一端维护。
2、不要使用一对一,尽量使用多对一。
3、配置对象缓存,不要使用集合缓存。
4、表字段要少,表关联不要怕多,有二级缓存撑腰。
hibernate 类与类之间关系
关联关系
聚集关系
继承关系
Hibernate继承关系映射策略分为三种:一张表对应一整棵类继承树、一个类对应一张表、每一个具体类对应一张表。
相关推荐
**Hibernate工作流程:** 1. **配置环境**:首先,你需要在项目中引入Hibernate的jar包,包括hibernate-core、hibernate-entitymanager等,并配置hibernate.cfg.xml文件,其中包含了数据库连接信息、方言设置、缓存...
**Hibernate 工作流程** 1. **初始化**: 应用程序启动时,加载Hibernate的配置文件(hibernate.cfg.xml),并建立SessionFactory。 2. **Session**: 当需要操作数据库时,从SessionFactory获取Session实例。 3. **...
### Hibernate工作原理详解 #### 一、概述 Hibernate 是一款开放源代码的 ORM(Object ...掌握 Hibernate 的工作原理对于提升 Java 应用程序的开发效率和性能至关重要。希望本文能为读者提供有价值的参考和启发。
【hibernate开发流程 入门】 在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以专注于业务逻辑而无需过多关注底层SQL的编写。本篇将详细介绍Hibernate的开发流程,从环境...
Hibernate 是一个开源的O/R mappimg的框架,基于JDBC提供了一种持久性数据管理的方案,相对于EntityBean来说是相当轻量级的。由于Hibernate是基于 JDBC的,所以它的数据库查寻的能力相对于CMP来说也是异常强大的,...
【标题】:“Hibernate、Spring和Struts工作原理及使用理由” 【内容】: Hibernate是一个流行的Java持久化框架,它的核心工作原理主要包括以下步骤: 1. **读取并解析配置文件**:Hibernate通过读取hibernate....
Hibernate工作流程** 1. 初始化:加载hibernate.cfg.xml配置文件,建立SessionFactory。 2. 创建Session:SessionFactory创建Session实例,每个数据库连接对应一个Session。 3. 开启事务:在Session上开启事务。 4....
它通过减少配置工作量、自动化生成代码等手段,大大提升了Hibernate开发者的开发效率。尽管HibernateSyn插件在文中没有详细介绍Hibernate框架的所有细节,但作者推荐了《Hibernate in action》一书供有兴趣深入了解...
4. Session:是Hibernate的工作单元,负责在应用程序和数据库之间传递对象。Session提供了事务处理和缓存管理的功能。 5. Query和Criteria API:用于执行数据库查询,提供HQL(Hibernate Query Language)和...
### Hibernate工作流程 1. **配置**: 首先,需要配置Hibernate,这通常通过`hibernate.cfg.xml`文件完成,其中包含了数据库连接信息、缓存设置、实体类的扫描路径等。 2. **实体映射**: 使用Hibernate注解或XML映射...
**三、Hibernate工作流程** 1. **初始化SessionFactory**:加载配置文件,创建SessionFactory实例,这是线程安全的,一般在应用启动时创建一次。 2. **获取Session**:从SessionFactory中获取Session实例,用于...
通过深入研究这个例子,你将对Hibernate的工作流程有清晰的认识,为后续的实际项目开发打下坚实基础。在实践中不断优化和调整,你会发现Hibernate是Java ORM领域的强大工具,能显著提升开发效率。
本文将开启一系列关于Hibernate源码的解析,首先,我们将探讨Hibernate的核心组件和主要工作流程。 1. Hibernate概述 Hibernate是由 Gavin King 创建的一个开源项目,它提供了一种在Java应用中持久化对象到关系...
4. **Hibernate工作流程**:加载配置文件创建SessionFactory,SessionFactory创建Session,Session执行CRUD操作(Create、Read、Update、Delete),并管理事务。 5. **Session与Transaction**:Session是Hibernate...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程模型来操作数据库,从而简化了Java应用程序中的数据存取工作。在Java开发中,Hibernate 提供了丰富的API,使得数据库操作变得更为...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者在Java应用程序中操作数据库,而无需直接编写SQL语句。ORM框架如Hibernate简化了数据持久化的过程,通过将对象模型与数据库模型进行映射,实现了...
`Session`是Hibernate工作流程中的重要角色,它负责持久化对象与数据库之间的交互。通过`Session`,开发者可以执行查询、保存、更新和删除操作。源码解析可能会揭示`Session`内部的事务管理、缓存机制以及如何封装...
**Hibernate 工作流程** 1. **配置**: 通过hibernate.cfg.xml文件配置数据库连接信息,实体类和数据库表的映射关系等。 2. **创建SessionFactory**: SessionFactory是Hibernate的核心,它是线程安全的,用于创建...
**三、Hibernate 工作流程** 1. **配置SessionFactory**:首先,通过Configuration类加载配置文件,创建SessionFactory实例。 2. **打开Session**:使用SessionFactory创建Session,代表一次数据库操作的开始。 3. *...
Struts、Spring 和 Hibernate 是Java开发中非常重要...在实际项目中,Struts负责控制流程,Spring提供全面的依赖管理和数据访问,而Hibernate则简化了数据库操作,三者结合可以构建出高效、可维护的Java Web应用程序。