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

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

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

    天生我才

    常用鏈接

    統(tǒng)計

    最新評論

    Hibernate中的主鍵釋疑

    hibernate的配置文件字段是必備的,剛剛看的時候一直疑惑,id字段是怎么和數(shù)據(jù)庫表關聯(lián)的,為什么一定得給表一個額外的字段?

    其實,java語言按內(nèi)存地址來識別或區(qū)分一個類的不同對象,而關系數(shù)據(jù)庫按主鍵值來區(qū)分同一個表的不同記錄,hibernate使用對象標識符(OID)來建立內(nèi)存中的對象和數(shù)據(jù)庫表中記錄的對應關系,為保證OID的唯一性,應讓hibernate而不是應用程序為其賦值。

    作為主鍵的字段必須不為空,不允許重復,主鍵值永不改變。可以使用具有業(yè)務含義的字段作為主鍵,如COSTOMERS表中的name,但需要滿足上述條件,稱為自然主鍵;也有一種代理主鍵,不具備業(yè)務含義,一般取名為ID。ID通常為整數(shù)類型,可以定義成自動增長的標識符類型(increment,sequence)。

    講到這里,還得提一下java語言按內(nèi)存地址區(qū)分不同對象,也就是==和equals( ),

    ??? Customer c1=new Customer("oscar");
    ??? Customer c2=new Customer("oscar");
    ??
    ?? c1= =c2?????????? 返回false
    ?? c1.equals(c2)?? 返回true

    現(xiàn)在我們回過頭來再看下Hibernate的OID

    ??????? Transaction tx=session.beginTranscation();
    ??????? Customer c1=(Customer) session.load(Customer.class, new long(1));
    ??????? Customer c2=(Customer) session.load(Customer.class, new long(1));
    ??????? Customer c3=(Customer) session.load(Customer.class, new long(3));
    ??????? System.out.println(c1= =c2);
    ??????? System.out.println(c1= =c3);

    (1)第一次加載OID為1的對象時,是先從數(shù)據(jù)庫中查詢ID為1的記錄,再創(chuàng)建相應的Customer實例,保存在Session緩存中,最后把這個對象的引用賦值給變量c1。
    (2)第二次加載OID為1時,直接把緩存中的Customer對象賦值給c2。
    (3)第三持加載OID為3的對象,由于緩存中不存在,必須再次從數(shù)據(jù)庫讀取,然后將Customer實例賦值給c3。

    因而輸出,true?????????
    ??????????????????? false

    最后提一下Hibernate的內(nèi)置標識符生成器,increment遞增,identity,由底層數(shù)據(jù)庫負責ID,sequence,也是由底層數(shù)據(jù)庫負責,hilo, 按high/low的算法來生成,native,能自動判斷底層數(shù)據(jù)庫提供的生成標識符的機制。

    posted on 2005-09-20 20:15 天生我才 閱讀(258) 評論(0)  編輯  收藏 所屬分類: Hibernate


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 宅男666在线永久免费观看| 97热久久免费频精品99| 特级无码毛片免费视频尤物| 好吊妞998视频免费观看在线| 亚洲国产成人久久综合一区| 18禁止观看免费私人影院| 国产v亚洲v天堂a无| 暖暖免费在线中文日本| 亚洲国产精品自在线一区二区| 色猫咪免费人成网站在线观看| 亚洲精品人成电影网| 国产一级片免费看| 亚洲午夜激情视频| 在线毛片片免费观看| 亚洲视频2020| 四虎影视www四虎免费| 污污视频免费观看网站| 日韩高清在线免费观看| 最好2018中文免费视频| 亚洲精品无码av人在线观看| 18禁无遮挡无码国产免费网站| 国产成人亚洲综合无码精品| 久久久久高潮毛片免费全部播放 | 97久久精品亚洲中文字幕无码| 特级aaaaaaaaa毛片免费视频| 成年在线观看免费人视频草莓| 亚洲精品成人网站在线播放| 国产在线国偷精品产拍免费| 青娱乐在线视频免费观看| 国产亚洲精品线观看动态图| 无忧传媒视频免费观看入口| 亚洲VA中文字幕无码一二三区| a毛片在线看片免费| 亚洲国产成人精品青青草原| 免费在线精品视频| 亚洲大片免费观看| 国产亚洲人成网站观看| 免费观看黄网站在线播放| a在线视频免费观看在线视频三区| 亚洲国产午夜电影在线入口 | 亚洲精品无码MV在线观看|