`
小杨学JAVA
  • 浏览: 903992 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hibernate工作流程

 
阅读更多
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层编码工作,使开发更对象化了。
3、移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。
4、支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。
hibernate延迟加载
get不支持延迟加载,load支持延迟加载。
1、hibernate2对 实体对象和集合 实现了延迟加载
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工作流程和环境搭建jar包.rar

    **Hibernate工作流程:** 1. **配置环境**:首先,你需要在项目中引入Hibernate的jar包,包括hibernate-core、hibernate-entitymanager等,并配置hibernate.cfg.xml文件,其中包含了数据库连接信息、方言设置、缓存...

    struts.hibernate工作流程

    **Hibernate 工作流程** 1. **初始化**: 应用程序启动时,加载Hibernate的配置文件(hibernate.cfg.xml),并建立SessionFactory。 2. **Session**: 当需要操作数据库时,从SessionFactory获取Session实例。 3. **...

    Hibernate 工作原理图Hibernate 工作原理图

    ### Hibernate工作原理详解 #### 一、概述 Hibernate 是一款开放源代码的 ORM(Object ...掌握 Hibernate 的工作原理对于提升 Java 应用程序的开发效率和性能至关重要。希望本文能为读者提供有价值的参考和启发。

    hibernate开发流程 入门

    【hibernate开发流程 入门】 在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以专注于业务逻辑而无需过多关注底层SQL的编写。本篇将详细介绍Hibernate的开发流程,从环境...

    Hibernate实践例子程序

    Hibernate 是一个开源的O/R mappimg的框架,基于JDBC提供了一种持久性数据管理的方案,相对于EntityBean来说是相当轻量级的。由于Hibernate是基于 JDBC的,所以它的数据库查寻的能力相对于CMP来说也是异常强大的,...

    Hibernate、Spring和Struts工作原理及使用理由

    【标题】:“Hibernate、Spring和Struts工作原理及使用理由” 【内容】: Hibernate是一个流行的Java持久化框架,它的核心工作原理主要包括以下步骤: 1. **读取并解析配置文件**:Hibernate通过读取hibernate....

    hibernate_jar包

    Hibernate工作流程** 1. 初始化:加载hibernate.cfg.xml配置文件,建立SessionFactory。 2. 创建Session:SessionFactory创建Session实例,每个数据库连接对应一个Session。 3. 开启事务:在Session上开启事务。 4....

    利用Eclipse开发Hibernate应用程序

    它通过减少配置工作量、自动化生成代码等手段,大大提升了Hibernate开发者的开发效率。尽管HibernateSyn插件在文中没有详细介绍Hibernate框架的所有细节,但作者推荐了《Hibernate in action》一书供有兴趣深入了解...

    hibernate 和hibernate_annotations(中文API).pdf帮助文档

    4. Session:是Hibernate的工作单元,负责在应用程序和数据库之间传递对象。Session提供了事务处理和缓存管理的功能。 5. Query和Criteria API:用于执行数据库查询,提供HQL(Hibernate Query Language)和...

    Hibernate最小功能包

    ### Hibernate工作流程 1. **配置**: 首先,需要配置Hibernate,这通常通过`hibernate.cfg.xml`文件完成,其中包含了数据库连接信息、缓存设置、实体类的扫描路径等。 2. **实体映射**: 使用Hibernate注解或XML映射...

    Hibernate实现原理模拟

    **三、Hibernate工作流程** 1. **初始化SessionFactory**:加载配置文件,创建SessionFactory实例,这是线程安全的,一般在应用启动时创建一次。 2. **获取Session**:从SessionFactory中获取Session实例,用于...

    hibernate例子程序

    通过深入研究这个例子,你将对Hibernate的工作流程有清晰的认识,为后续的实际项目开发打下坚实基础。在实践中不断优化和调整,你会发现Hibernate是Java ORM领域的强大工具,能显著提升开发效率。

    Hibernate源码解析(一)

    本文将开启一系列关于Hibernate源码的解析,首先,我们将探讨Hibernate的核心组件和主要工作流程。 1. Hibernate概述 Hibernate是由 Gavin King 创建的一个开源项目,它提供了一种在Java应用中持久化对象到关系...

    hibernate 基础jar包和mysql程序驱动

    4. **Hibernate工作流程**:加载配置文件创建SessionFactory,SessionFactory创建Session,Session执行CRUD操作(Create、Read、Update、Delete),并管理事务。 5. **Session与Transaction**:Session是Hibernate...

    hibernateJar包及配置文件

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程模型来操作数据库,从而简化了Java应用程序中的数据存取工作。在Java开发中,Hibernate 提供了丰富的API,使得数据库操作变得更为...

    hibernate入门

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者在Java应用程序中操作数据库,而无需直接编写SQL语句。ORM框架如Hibernate简化了数据持久化的过程,通过将对象模型与数据库模型进行映射,实现了...

    Hibernate源码解析(三)

    `Session`是Hibernate工作流程中的重要角色,它负责持久化对象与数据库之间的交互。通过`Session`,开发者可以执行查询、保存、更新和删除操作。源码解析可能会揭示`Session`内部的事务管理、缓存机制以及如何封装...

    Hibernate 参考手册中文API文档.chm

    **Hibernate 工作流程** 1. **配置**: 通过hibernate.cfg.xml文件配置数据库连接信息,实体类和数据库表的映射关系等。 2. **创建SessionFactory**: SessionFactory是Hibernate的核心,它是线程安全的,用于创建...

    Hibernate的一个简单例子

    **三、Hibernate 工作流程** 1. **配置SessionFactory**:首先,通过Configuration类加载配置文件,创建SessionFactory实例。 2. **打开Session**:使用SessionFactory创建Session,代表一次数据库操作的开始。 3. *...

    struts工作原理图、spring框架结构图、hibernate工作原理图

    Struts、Spring 和 Hibernate 是Java开发中非常重要...在实际项目中,Struts负责控制流程,Spring提供全面的依赖管理和数据访问,而Hibernate则简化了数据库操作,三者结合可以构建出高效、可维护的Java Web应用程序。

Global site tag (gtag.js) - Google Analytics