先来看一下Hibernate中的知识点的整体结构图:
下面我来对其中的知识点进行一下讲解:
一.简介和使用:
简介
Hibernate的配置
Hibernate对象的生命周期
核心接口
二.映射相关
Hibernate中的映射
三.语言:
HQL
Hibernate查询语言(HQL),和SQL不同的是,HQL是一种面向对象的查询语言,它可以查询以对象形式存在的数据。
四.机制
锁机制
锁机制是用来解决高并发问题的。
Hibernate中的锁机制有两种:悲观锁和乐观锁
悲观锁:采用数据库本身的锁机制,for update或no wait
优点:处理并发彻底,并发处理比较好
缺点:当一个用户锁定记录的时候,其它用户都不能使用了,容易造成长时间的等待.
乐观锁:是Hibernate自己实现的,采用版本控制的方式实现处理并发.
1.添加version元素
在实体类和相应的映射文件中加上version属性。
2.声明使用版本控制的方式实现乐观锁
将optimistic-lock="version"添加到对应的对象映射文件的class标签中
Lazy机制
lazy机制使用的是cglib的动态代理代理(与JDK动态代理不同,JDK的动态代理是实现接口,而CGLIB的代理是继承类)。
注意:hibernate的lazy策略必须在session打开的状态下有效。
五.扩展
注解
hibernate提供了hibernate annotation扩展包,它是用来替换复杂的hbm.xml文件,使得hibernate程序开发大大简化 。
优点:简单,使用类似于添加注释(如@Entity,@id等)的方式就可以实现映射。
缺点:需要改动代码,功能没有xml强大。