hibernate工作流程

本文介绍Hibernate的工作原理,包括配置读取、映射信息解析、会话管理及事务处理等核心流程,并探讨其优点如简化DAO层编码、支持透明持久化等。此外,还详细讲解了Hibernate的缓存机制、延迟加载特性及其对服务器性能的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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继承关系映射策略分为三种:一张表对应一整棵类继承树、一个类对应一张表、每一个具体类对应一张表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值