<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-40  評論-66  文章-0  trackbacks-0

    ORM
    Object Relation Mapping
    對象 關系 映射

    對象 指實體域對象
    關系 關系數據


    模型

    概念模型(實體-屬性)
    關系數據模型(關系數據庫)
    域模型(對象)


    軟件分層

    v - 表述層
    c /

    ??? /業務層
    m- 持久層(hibernate 技術實現)
    ??? \數據層


    mvc 對應 各層次


    概念實體關系

    1對1
    1對多
    多對多


    表與表之間的關系 參照完整性

    外鍵
    多對多
    多對一


    域對象之間的 關系

    關聯 (一對一 一對多 多對多)
    依賴 (一個類需要訪問另外一個類)
    聚集 (一個類的對象是另一個類的一部分, 人和手)
    一般化 (繼承關系)


    域對象
    ?實體域對象? (實體EJB,POJO)
    過程域對象? (會話EJB,消息驅動EJB,POJO)
    事件域對象? ()

    在hibernate中 一般只關注 實體域對象 和 過程域對象


    域對象的關系

    ?域對象的關聯關系 是有方向的
    體現在類的編碼不一樣的

    單向關聯
    雙向關聯

    ?


    域對象的持久化
    把對象從內存中 保存到持久化設備中去

    ORM 與? ORM模式
    ORM模式是一種持久化技術,還有其他模式的持久化技術。如主動域模式(BMP),JDO模式,CMP模式。


    域模型和數據模型的各個不匹配之處
    1,繼承
    2,多對多
    3,雙向
    4。粒度
    盡量少連接查詢,很消耗時間的操作

    ?


    創建持久化類


    1。持久化類符合javabean的規范,包含一些屬性 以及對應的getxxx 色天下學習方法
    2。持久化類有一個id屬性,用來唯一表示類的每一個對象。 也叫OID 對象表示符
    3。Hibernate要求持久化類必須提供一個不帶參數的默認構造方法

    創建數據庫schema

    創建對象-關系映射文件

    (一般在eslispe中先創建數據庫 然后再創建持久化類以及映射文件)

    hibernate 映射類型


    hibernate的初始化

    static{

    try{
    //根據默認位置的hibernate配置文件創建 configuration實例
    Configuration config = new Configuration();
    config.addClass(Customer.class);
    //創建SessionFactory 實例
    sessionFactory = config.buildSessinoFactroy();
    }catch(Exception e){e.printStackTrace();}
    }


    SessionFactory 接口

    一個SessionFactory 實例是對應一個數據源的,應用從SessionFactory 獲取session實例對象
    1線程安全的
    2重量級的,不能隨意創建和銷毀她的實例。

    Session 接口

    1 Session接口是hibernate應用最為廣泛的接口。
    2 Session也被稱為持久化管理器,它提供和持久化相關的操作
    3 Session有以下特點
    ?a 不是線程安全的 所以應避免多線程共用一個Session實例
    ?b Session實例是輕量級的,所謂輕量級是指他的創建和銷毀不需要消耗太多的資源。意味著程序中可以經常創建和銷毀Session實例,保證不多線程使用Session對象。

    Session接口的常用方法:
    save()
    update()
    delete()
    load()

    Session執行事務流程

    Session session = factory.openSession();
    Transaction tx;
    try{
    tx = session.beginTranscation();
    //執行事務
    ...
    //提交事務
    tx.commit();
    }
    catche(Exception e)
    {//如果出現異常,撤消事務
    if(tx!=null)tx.rollback();
    throw e;
    }
    finally{
    session.close(); //不管事務是否成功,最后都要關閉session對象
    }
    }

    ?

    ?

    ?

    ?

    posted on 2007-02-07 14:32 Super·shen BLOG 閱讀(412) 評論(0)  編輯  收藏 所屬分類: JAVA技術
    主站蜘蛛池模板: 亚洲AV无码久久精品蜜桃| 在线a亚洲v天堂网2018| h在线看免费视频网站男男| 久久精品国产亚洲AV无码娇色| 免费观看a级毛片| 69视频免费观看l| 国产精品免费久久久久久久久| 亚洲欧美乱色情图片| 亚洲人成亚洲精品| 亚洲电影日韩精品 | 亚洲人AV永久一区二区三区久久| 97免费人妻无码视频| 免费一级毛片无毒不卡| aa级女人大片喷水视频免费| 精品视频免费在线| 蜜芽亚洲av无码一区二区三区| 亚洲国语在线视频手机在线| 亚洲视频国产视频| 亚洲天堂在线播放| 91亚洲性爱在线视频| 亚洲成人免费网站| 在线观看日本亚洲一区| 亚洲国产综合精品中文第一| 亚洲日韩精品国产3区| 亚洲精品无码日韩国产不卡av| 亚洲人成欧美中文字幕| 免费人成网站永久| 日韩免费在线视频| 国产一卡2卡3卡4卡2021免费观看 国产一卡2卡3卡4卡无卡免费视频 | 亚洲一区中文字幕在线观看| 亚洲成A∨人片天堂网无码| 18禁美女裸体免费网站| 国产福利在线观看免费第一福利| 成人午夜18免费看| 亚洲国产成人爱av在线播放| 亚洲一区二区三区无码中文字幕 | a在线视频免费观看在线视频三区| 今天免费中文字幕视频| **aaaaa毛片免费同男同女| 在线免费视频一区二区| 亚洲性猛交XXXX|