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

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

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

    隨筆 - 303  文章 - 883  trackbacks - 0
    <2007年4月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    歡迎光臨! 
    閑聊 QQ:1074961813

    隨筆分類(357)

    我管理的群

    公共blog

    • n維空間
    • Email : java3d@126.com 群 : 12999758

    參與管理的論壇

    好友的blog

    我的其他blog

    朋友的網(wǎng)站

    搜索

    •  

    最新評論

    Hibernate Quickly英文版下載


    Hibernate Quickly

    --讀書筆記

     


            上個筆記介紹了配置文件的簡要介紹,本想這個文來探討一下實例,但經(jīng)過思考之后,還是要再澄清一些知識點。這里我們主要了解什么是Session和Sessionfactory,再拿上次的圖出來:、

     

    好了,繼續(xù)解釋這個圖先:

    這個圖是hibernate給我們這些開發(fā)人員的全貌圖,
    下面的三個配置文件負(fù)責(zé)hibernate服務(wù)的基本配置。通過對這些文件的配置實現(xiàn)數(shù)據(jù)庫的訪問和數(shù)據(jù)庫內(nèi)部關(guān)系與程序間的協(xié)調(diào);從而實現(xiàn)數(shù)據(jù)庫的智能化操作,提高效率和數(shù)據(jù)安全性。
    例子:
    hibernate.cfg.xml(jdbc)
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-
    3.0.dtd"
    >
    <hibernate-configuration>
    <!--定義Sessionfactory-->
    <session-factory>
    <!--要連接的數(shù)據(jù)庫帳號和密碼-->
    <property name="connection.username">uid</property>
    <property name="connection.password">pwd</property>
    <!--數(shù)據(jù)庫路徑-->
    <property name="connection.url">
    jdbc:mysql://localhost/db
    </property>
    <!--加載驅(qū)動-->
    <property name="connection.driver_class">
    com.mysql.jdbc.Driver
    </property>
    <property name="dialect">
    org.hibernate.dialect.MySQLDialect
    </property>
    <!--影射到的數(shù)據(jù)庫中的表-->
    <!--這里我們的每個表用一個影射文件表示-->
    <!--這里總共有四個表,我們會在這些影射文件中記錄一些必要的信息-->
    <mapping resource="com/manning/hq/ch03/Event.hbm.xml"/>
    <mapping resource="com/manning/hq/ch03/Location.hbm.xml"/>
    <mapping resource="com/manning/hq/ch03/Speaker.hbm.xml"/>
    <mapping resource="com/manning/hq/ch03/Attendee.hbm.xml"/>
    </session-factory>
    </hibernate-configuration>

    另一中數(shù)據(jù)庫連接方式,比較少見,貼給大家看看

    hibernate.cfg.xml(JNDI)
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-
    3.0.dtd"
    >
    <hibernate-configuration>
    <session-factory
    name="java:comp/env/hibernate/SessionFactory">
    <property name="connection.datasource">
    jdbc/myDataSource
    </property>
    <!--dialect屬性告訴Hibernate使用什么sql方言-->
    <!--不同的數(shù)據(jù)庫使用的sql會有所不同-->
    <property name="dialect">
    org.hibernate.dialect.MySQLDialect
    </property>
    <mapping resource="com/manning/hq/ch03/Event.hbm.xml"/>
    <mapping resource="com/manning/hq/ch03/Location.hbm.xml"/>
    <mapping resource="com/manning/hq/ch03/Speaker.hbm.xml"/>
    <mapping resource="com/manning/hq/ch03/Attendee.hbm.xml"/>
    </session-factory>
    </hibernate-configuration>


    影射文件:

    Event.hbm.xml

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
    >
    <hibernate-mapping package="com.manning.hq.ch03">
    <!--為改類取名,并聲明它所對應(yīng)的表-->
    <class name="Event" table="events">
    <!--定義內(nèi)部的數(shù)據(jù)字段屬性-->
    <id name="id" column="uid" type="long" unsavedvalue="null">
    <generator class="native"/>
    </id>
    <property name="name" type="string" length="100"/>
    <property name="startDate" column="start_date"
    type
    ="date"/>
    <property name="duration" type="integer"/>
    <!--定義多對一的表關(guān)系-->
    <many-to-one name="location" column="location_id"
    class
    ="Location"/>
    <set name="speakers">
    <key column="event_id"/>
    <!--定義一對多的表關(guān)系-->
    <one-to-many class="Speaker"/>
    </set>
    <set name="attendees">
    <key column="event_id"/>
    <!--定義一對多的表關(guān)系-->
    <one-to-many class="Attendee"/>
    </set>
    </class>
    </hibernate-mapping>

    這里我們發(fā),對于表間的關(guān)系,只定義于多個影射文件中的一個,其他的只定義自己的基本字段屬性;
    這樣做不但簡單,而且便于管理。

    Location.hbm.xml

    <?xml version="1.0"?>
    <hibernate-mapping package="com.manning.hq.ch03">
    <class name="Location" table="locations">
    <!--定義locations表中的字段屬性-->
    <id name="id" column="uid" type="long">
    <generator class="native"/>
    </id>
    <property name="name" type="string"/>
    <property name="address" type="string"/>
    </class>
    </hibernate-mapping>

    接下來看看圖中的sessionfactory和session怎么使用

    //創(chuàng)建一個Configuration實例
    Configuration cfg = new Configuration();
    //創(chuàng)建一個SessionFactory實例
    SessionFactory factory = cfg.buildSessionFactory();
    //實例化表對象,這與前面影射文件是對應(yīng)的
    Event event = new Event();
    //通過SessionFactory實例創(chuàng)建我
    //們的編程接口session
    Session session = factory.openSession();
    //執(zhí)行HQL語句,改語句會自動判定目前的情況下是
    //執(zhí)行sare(event)還是Update(event)
    session.saveOrUpdate(event);
    //刷新session緩存,將updata數(shù)據(jù)寫入數(shù)據(jù)庫
    session.flush();
    //關(guān)閉該session對象
    session.close();

    不早了,睡覺覺去了,先寫到這里了,本想給大家個code example直接搞定,可惜hibernate實在是有點復(fù)雜有些問題不講清就會似懂不懂,實在是違背我的本意;

    下個文章,將學(xué)習(xí)session的緩存技術(shù),建議大家找這本書先看看,上面給了個英文版的下載地址。

    不明之處,還請留言;


    地震讓大伙知道:居安思危,才是生存之道。
    posted on 2007-04-05 23:27 小尋 閱讀(331) 評論(2)  編輯  收藏 所屬分類: j2se/j2ee/j2me

    FeedBack:
    # re: Hibernate Quickly--讀書筆記(2) 2007-04-27 18:45 Aliang
    問一下,你有這本書的代碼么?有的話麻煩發(fā)一個
    brinews@126.com

    先謝了  回復(fù)  更多評論
      
    # re: Hibernate Quickly--讀書筆記(2) 2007-04-29 11:46 幻想~@@~
    哦你好 謝謝你的支持!!

         《Hibernate Quickly》
    源代碼,網(wǎng)上找不到
    但我提供一個方法:你可以裝Adobe Reader
    用它打開上面下載的的電子書,然后你就可以
    使用里面提供的文本選擇工具選取自己想要的代碼,
    并將它復(fù)制下來使用,改方法我試過可行!
     
    祝你學(xué)習(xí)愉快~~~
      回復(fù)  更多評論
      
    主站蜘蛛池模板: 午夜肉伦伦影院久久精品免费看国产一区二区三区| 免费观看成人毛片a片2008| 国产无遮挡色视频免费视频| 亚洲视频免费观看| 91精品全国免费观看含羞草| 亚洲va国产va天堂va久久| 香蕉免费在线视频| 亚洲精品美女久久777777| 久久久精品视频免费观看| 亚洲老妈激情一区二区三区| a级毛片毛片免费观看久潮喷 | 在线免费观看污网站| 亚洲乱人伦中文字幕无码| 欧洲精品免费一区二区三区 | 男人和女人高潮免费网站| 亚洲国产精品13p| 免费精品国产自产拍在线观看 | 97国产免费全部免费观看| 亚洲精品日韩一区二区小说| 免费人成视网站在线观看不卡| jzzjzz免费观看大片免费| 亚洲va久久久噜噜噜久久天堂 | free哆拍拍免费永久视频 | 亚洲一级毛片在线播放| 永久黄网站色视频免费直播| 国产黄片不卡免费| 亚洲男人都懂得羞羞网站| 啦啦啦中文在线观看电视剧免费版 | 久9这里精品免费视频| 亚洲国产成a人v在线| 国产在线19禁免费观看国产| 2022国内精品免费福利视频| 亚洲综合在线视频| 国产精品冒白浆免费视频| 国产无遮挡无码视频免费软件| 亚洲国产午夜精品理论片| 亚洲精品无码专区久久同性男| 99视频有精品视频免费观看| 粉色视频在线观看www免费| 在线观看无码AV网站永久免费| 国产精品亚洲综合天堂夜夜|