<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毛片软件| 四色在线精品免费观看| 久久亚洲国产成人影院网站| 亚洲精品乱码久久久久66| 91情国产l精品国产亚洲区| 亚洲一区中文字幕在线电影网| 亚洲精品无码你懂的| 日本亚洲欧洲免费天堂午夜看片女人员 | 中文字幕无码免费久久9一区9| 精品国产sm捆绑最大网免费站| 日韩成人在线免费视频| 亚洲色四在线视频观看| 又黄又大的激情视频在线观看免费视频社区在线 | 亚洲精品白色在线发布| jzzijzzij在线观看亚洲熟妇| 黄色片免费在线观看| 国产成人综合久久精品免费| 精品亚洲国产成AV人片传媒| 国产AV无码专区亚洲AV琪琪| 91手机看片国产永久免费| 在线亚洲97se亚洲综合在线| 亚洲熟妇AV乱码在线观看| 少妇性饥渴无码A区免费| 免费国产一级特黄久久| 亚洲最大成人网色香蕉| 99久久人妻精品免费二区| 一本色道久久综合亚洲精品| a级毛片免费播放| 国产亚洲成人久久| 免费无码成人AV在线播放不卡| 精品亚洲AV无码一区二区| 免费jjzz在线播放国产| 丝瓜app免费下载网址进入ios| 久久精品国产亚洲av影院| 日韩在线免费电影| 97人妻精品全国免费视频| 亚洲人片在线观看天堂无码| 久久亚洲精品无码观看不卡| 亚州免费一级毛片|