首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hibernate初始学习

2012-10-09 
Hibernate初步学习一、入门配置1.步骤:a.加载hibernate类包,数据库链接包b.配置hibernate.cfg.xml文件c.写p

Hibernate初步学习
一、入门配置

     1.步骤:
           a.加载hibernate类包,数据库链接包
           b.配置hibernate.cfg.xml文件
           c.写pojo类
           d.创建相应的pojo类**.hbm.xml文件
           e.将创建的**.hbm.xml文件路径配置到hibernate.cfg.xml中
           f.写dao类获得session对象
           g.进行测试

     2.注意事项:
                  a.配置hibernate.cfg.xml时候数据库参数
                  b.**.hbm.xml文件相关属性与数据库表结构对应
                  c.路径问题   
二、映射配置
  
     1.一对多:
               a.pojo:
                      加上一个List集合属性

               b.**.hbm.xml:
                      以bag方式映射:


               
   2.多对一:
             a.pojo:
                      加上一个”一“类型对象属性
             b.**.hbm.xml
                 

    3.多对多:
               a.pojo:
                     添加一条Set映射属性
               b.**.hbm.xml:
                    

             c.数据库表结构:
                       新建第三方表,分别关联其它两表
   
三、体系结构

        ORM:(Object Relational Mapping)是一种在不同的数据库之上封装并提供一个统一的操作接口的 技术. ORM能够为用户提供统一的OO接口, 是数据访问接口的一种实现方式.
Hibernate 可以说就是一个ORM的工具.
   

1. 组成部分:

   a.连接管理组件 :
         ConnectionProvider  用于生成和数据库建立了连接的JDBC对象。同时,还作为数据库连接的缓冲池。

   b.事务管理组件 :
         Transaction hibernate通过transaction对象实现了对数据库中事务的控制。
 
   c.对象关系管理组件:
         Session  Session是Hibernate持久化管理器的核心,提供了一系列的持久化操作方法。同时它也是Transaction的工厂。


2.执行流程:
 



a. 实例化一个Configeration类:

        它的构造方法:将配置信息(Hibernate config.xml)读入到内存。一个 Configeration 实例代表Hibernate 所有Java类到Sql数据库映射的集合。

b.实例化SessionFactory实例

        将Configeration 对象中的所有配置信息加入到SessionFactory的缓存中。

c.由SessionFactory生成一个Session
    
         链接数据库,处理加入到缓存中的信息。
     

3.Hibernate 中Java对象的状态

a.临时状态 (transient)

        特点:
             不处于Session 缓存中,数据库中没有对象记录。

     存在的情况:
             通过new语句刚创建一个对象时,当调用Session 的delete()方法,从Session 缓存中删除一个对象时。

b.持久化状态(persisted)

          特点:
               处于Session 缓存中、持久化对象数据库中设有对象记录。

        存在的情况:
               Session 的save()把临时状态变为持久化状态、Session 的load(),get()方法返回的对象 、Session 的find()返回的list集合中存放的对象、Session 的update(),saveOrupdate()使游离状态变为持久化状态;


c.游离状态(detached)

      特点:
            不再位于Session 缓存中、游离对象由持久化状态转变而来,数据库中可能还有对应记录。

   存在的情况:
              Session 的close()方法,将对象的持久状态变为游离状态、Session 的evict()方法,从缓存中删除一个对象。

热点排行