Hibernate入门基础概念整理_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Hibernate入门基础概念整理

Hibernate入门基础概念整理

 2013/10/9 16:03:35  flycars001  程序员俱乐部  我要评论(0)
  • 摘要:一、Hibernate入门常识:1.面向对象设计的软件内部运行过程可以理解成就是在不断创建各种新对象、建立对象之间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程,不管程序运行的过程和操作怎么样,本质上都是要得到一个结果,程序上一个时刻和下一个时刻的运行结果的差异就表现在内存中的对象状态发生了变化。2.为了在关机和内存空间不够的状况下,保持程序的运行状态,需要将内存中的对象状态保存到持久化设备和从持久化设备中恢复出对象的状态,通常都是保存到关系数据库来保存大量对象信息
  • 标签:概念 hibernate

? 一、Hibernate入门常识:

??? 1. 面向对象设计的软件内部运行过程可以理解成就是在不断创建各种新对象、建立对象之

??? 间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程,不管程序运行的过程

??? 和操作怎么样,本质上都是要得到一个结果,程序上一个时刻和下一个时刻的运行结果的差

??? 异就表现在内存中的对象状态发生了变化。

??? 2. 为了在关机和内存空间不够的状况下,保持程序的运行状态,需要将内存中的对象状态保

??? 存到持久化设备和从持久化设备中恢复出对象的状态,通常都是保存到关系数据库来保存大

??? 量对象信息。从Java?程序的运行功能上来讲,保存对象状态的功能相比系统运行的其他功

??? 能来说,应该是一个很不起眼的附属功能,java 采用jdbc 来实现这个功能,这个不起眼的

??? 功能却要编写大量的代码,而做的事情仅仅是保存对象和恢复对象,并且那些大量的jdbc

??? 代码并没有什么技术含量,基本上是采用一套例行公事的标准代码模板来编写,是一种苦活

??? 和重复性的工作。

??? 3. 通过数据库保存 java 程序运行时产生的对象和恢复对象,其实就是实现了 java 对象与关

??? 系数据库记录的映射关系,称为ORM(即Object Relation Mapping),人们可以通过封装 JDBC

??? 代码来实现了这种功能,封装出来的产品称之为 ORM框架,Hibernate 就是其中的一种流行

??? ORM框架。使用 Hibernate 框架,不用写 JDBC 代码,仅仅是调用一个 save 方法,就可以

??? 将对象保存到关系数据库中,仅仅是调用一个get方法,就可以从数据库中加载出一个对象。

??? 4. 使用Hibernate 的基本流程是:配置 Configuration 对象、产生 SessionFactory、创建 session

??? 对象,启动事务,完成CRUD 操作,提交事务,关闭session .

??? 5. 使用Hibernate 时,先要配置 hibernate.cfg.xml文件,其中配置数据库连接信息和方言等,

??? 还要为每个实体配置相应的hbm.xml 文件,hibernate.cfg.xml文件中需要登记每个hbm.xml

??? 文件。?

??? 6. 在应用Hibernate 时,重点要了解 Session的缓存原理,级联,延迟加载和 hql 查询。

??? 细细品读上面这几句话,如果没懂,建议顺延学习Hibernate计划。

??? 二、Hibernate工作原理

??? Hibernate 的初始化。

??? 读取Hibernate 的配置信息-〉创建Session Factory

??? 1)创建Configeration类的实例。

??? 它的构造方法:将配置信息(Hibernate config.xml)读入到内存。

??? 一个Configeration 实例代表Hibernate 所有Java类到Sql数据库映射的集合。

??? 2)创建SessionFactory实例

??? 把Configeration 对象中的所有配置信息拷贝到SessionFactory的缓存中。

??? SessionFactory的实例代表一个数据库存储员源,创建后不再与Configeration 对象关联。

??? 缓存(cache):指Java对象的属性(通常是一些集合类型的属性--占用内存空间。

??? SessionFactory的缓存中:Hibernate 配置信息。OR映射元数据。

??? 缓存-大:重量级对象 小:轻量级对象

??? 3)调用SessionFactory创建Session的方法

??? 1.用户自行提供JDBC连接。

??? Connection con=dataSource.getConnection();

??? Session s=sessionFactory.openSession(con);

??? 2.让SessionFactory提供连接

??? Session s=sessionFactory.openSession();

??? 4)通过Session 接口提供的各种方法来操纵数据库访问。

??? 三、Hibernate缓存体系

??? 一级缓存:

??? Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象。

??? 每个Session 都有自己独立的缓存,且只能被当前工作单元访问。

??? 二级缓存:

??? SessionFactory的外置的可插拔的缓存插件。其中的数据可被多个Session共享访问。

??? SessionFactory的内置缓存:存放了映射元数据,预定义的Sql语句。

四、Hibernate中Java对象状态

??? 1.临时状态 (transient)

??? 特征:

??? 1.不处于Session 缓存中

??? 2.数据库中没有对象记录

??? Java如何进入临时状态

??? 1.通过new语句刚创建一个对象时

??? 2.当调用Session 的delete()方法,从Session 缓存中删除一个对象时。

??? 2.持久化状态(persisted)

??? 特征:

??? 1.处于Session 缓存中

??? 2.持久化对象数据库中设有对象记录

??? 3.Session 在特定时刻会保持二者同步

??? Java如何进入持久化状态

??? 1.Session 的save()把临时->持久化状态

??? 2.Session 的load(),get()方法返回的对象

??? 3.Session 的find()返回的list集合中存放的对象

??? 4.Session 的update(),saveOrupdate()使游离->持久化

??? 3.游离状态(detached)

??? 特征:

??? 1.不再位于Session 缓存中

??? 2.游离对象由持久化状态转变而来,数据库中可能还有对应记录。

??? Java如何进入持久化状态->游离状态

??? 1.Session 的close()方法

??? 2.Session 的evict()方法,从缓存中删除一个对象。提高性能。少用。

发表评论
用户名: 匿名