Hibernate 入门

一、[color=green]入门配置[/color]

 

     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.路径问题    

二、[color=green]映射配置[/color]

 

     1.一对多:

               a.pojo:

                      加上一个List集合属性

 

               b.**.hbm.xml:

                      以bag方式映射:[code="xml"]  <bag name="****"table="****"orderby="****"lazy="****"cascade="****">

                     <key column="****"/>

                     <one-to-many class="****" />

                     </bag>[/code]

 

   2.多对一:

             a.pojo: 

                      加上一个”一“类型对象属性

             b.**.hbm.xml

                  [code="java"]

<many-to-one name="****" column="****" class="****" cascade="****" outer-join="****">

</many>[/code]

    3.多对多:

               a.pojo:

                     添加一条Set映射属性

               b.**.hbm.xml:

                     [code="xml"]

           <set name="****" table="****" cascade="****"> 

           <key column="****"/>

           <many-to-many class="****" column="****"/>

 </set>[/code]

             c.数据库表结构:

                       新建第三方表,分别关联其它两表

 

三、[color=green]体系结构[/color]

 

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

 Hibernate 可以说就是一个ORM的工具.

 

 

1. 组成部分:

 

   a.连接管理组件 : 

         [color=olive] ConnectionProvider[/color]  用于生成和数据库建立了连接的JDBC对象。同时,还作为数据库连接的缓冲池。

 

   b.事务管理组件 : 

         [color=olive]Transaction[/color] hibernate通过transaction对象实现了对数据库中事务的控制。

 

   c.对象关系管理组件:

         [color=olive]Session[/color]  Session是Hibernate持久化管理器的核心,提供了一系列的持久化操作方法。同时它也是Transaction的工厂。

 

 

 2.执行流程:

 

[img]http://dl.javaeye.com/upload/attachment/292642/f1f6c856-f1f5-354f-8e11-29e70a7206f3.jpg[/img]

 

 

 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()方法,从缓存中删除一个对象。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值