<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ù)  更多評論
      
    主站蜘蛛池模板: 四虎影在线永久免费四虎地址8848aa| 青草久久精品亚洲综合专区| 深夜国产福利99亚洲视频| 99爱免费观看视频在线| 日韩精品无码免费视频| 亚洲色大成网站www尤物| 亚洲黄色在线观看网站| 亚洲色中文字幕无码AV| 国产一区二区视频免费| 最近免费中文字幕视频高清在线看| 四虎国产精品永久免费网址| 一级做a爱片特黄在线观看免费看 一级做a爱过程免费视 | 免费无码又爽又刺激聊天APP| 永久免费av无码入口国语片| 久香草视频在线观看免费| 亚洲日本中文字幕天天更新| 亚洲国产精品白丝在线观看| 亚洲∧v久久久无码精品| 亚洲无av在线中文字幕| 亚洲国产成人精品女人久久久| 日韩一级视频免费观看| 免费无码AV电影在线观看| 99久久久国产精品免费无卡顿 | 国产精品免费电影| 久久99九九国产免费看小说| 亚洲电影免费在线观看| 日韩电影免费在线观看网站| 成av免费大片黄在线观看| 日本中文字幕免费看| 免费人成视频在线播放| 黄色毛片免费在线观看| 日本一区二区在线免费观看| 午夜成人无码福利免费视频| 无遮挡国产高潮视频免费观看| 一级毛片a免费播放王色电影| 另类图片亚洲校园小说区| 羞羞网站免费观看| 免费观看四虎精品成人| 黄色一级视频免费| 国产日韩AV免费无码一区二区三区 | 全部在线播放免费毛片|