原始森林中的一個狼窩

          常用鏈接

          統(tǒng)計

          積分與排名

          我的好友

          最新評論

          Hibernate Day_1

          Hibernate 英文的直意是冬眠的意思。

          Hibernate 是一個面向 Java 環(huán)境的對象 / 關(guān)系數(shù)據(jù)映射工具,注意,這是一種技術(shù)工具。

          ORM object relational mapping 這個術(shù)語表示一種技術(shù),用來把對象模型表示的對象映射到基于 SQL 的關(guān)系模型數(shù)據(jù)結(jié)構(gòu)中去。

          以上的這些概念性的東西,然我感覺和 .NET Framework 2.0 中的強類型數(shù)據(jù)集的作用差不多,但聽研究過的人說,要比 Microsoft 的那個好得多, Microsoft 的強類型數(shù)據(jù)集我用過,感覺爽,既然有說 Hibernate 更好,那已經(jīng)更是過癮,我心里癢癢的呀。繼續(xù)。。。

          書中有這樣一句“對于以數(shù)據(jù)為中心的程序來說,他們往往只在數(shù)據(jù)庫中使用存儲過程來實現(xiàn)商業(yè)邏輯, Hibernate 可能不是最好的解決方案。”這個是一定啦, Hibernate 是橋梁,又不是萬金油,當(dāng)然是在數(shù)據(jù)庫中直接用存儲過程處理商業(yè)邏輯是最好的啦。我做過,直接在存儲過程中搞定一切東西,傳一個參數(shù)過去,然后所有的運算都在 SQL Server 2000 的存儲過程中完成,那叫一個爽,比把數(shù)據(jù)讀到程序里,然后用 Java 處理,再把數(shù)據(jù)傳回去要快得多,但是在 SQL Server 2000 里直接用存儲過程來完成這樣的工作,難度還是不小的,調(diào)試就是最大的難點,反正我是沒整明白有啥辦法可以調(diào)試的,我就用最原始、最保靠,據(jù)說是也是有效的調(diào)試方法 print 來完成。哈哈。夠暈的吧!繼續(xù)看。。。

          現(xiàn)在看到了一個“持久化實體類”這個類是符合 JavaBean 的編寫要求。并且要給它一個唯一的標(biāo)識符,這是為了我們使用 Hibernate 提供的所有特性。大多數(shù)程序,特別是 web 程序,都需要通過標(biāo)識符來區(qū)分對象。但,通常我們不會直接操作對象的標(biāo)識符,所以他的 setter 方法的訪問級別是 private

          Hibernate 需要知道怎樣去加載( load )和存儲( store )持久化類的對象,映射文件,它就是告訴 Hibernate ,應(yīng)該訪問數(shù)據(jù)庫里面的哪個表,已經(jīng)應(yīng)該使用表里面哪些字段。

          Hibernate 不會從 web 加載 DTD 文件,但它會首先在應(yīng)用程序的 classpath 中查找。 DTD 文件包含在 hibernate3.jar 里,同時在 Hibernate 發(fā)布包的 src/ 目錄下。

          映射文件的長相: Event.hbm.xml

          <hibernate-mapping>

          ???? <classname="events.Event" table="Events">

          ??????????? <idname="id" column="eventID">

          ?????????????????? <generatorclass="native"/>

          ??????????? </id>

          ??????????? <propertyname="date" type="timestamp" column="eventDate"/>

          ??????????? <propertyname="title" column="eventTitle"/>

          ???? </class>

          </hibernate-mapping>

          ?

          說明:

          class 表示持久化類;

          id 表示唯一標(biāo)識;

          property 表示類的屬性字段;

          name 是持久化類名;

          table 是數(shù)據(jù)表名;

          column 是數(shù)據(jù)字段名;

          generator 是唯一標(biāo)識的生成方式;

          type 是映射的數(shù)據(jù)類型。

          ?

          Hibernate 配置文件的長相: hibernate.cfg.xml

          <!-- by MyEclipse Hibernate tool integration. -->

          <hibernate-configuration>

          ??? <session-factory>

          ??????? <!-- properties -->

          ??????? <propertyname="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

          ??????? <propertyname="connection.url">jdbc:oracle:thin:@localhost:1521:test</property>

          ??????? <propertyname="connection.username">system</property>

          ??????????? ?<propertyname="connection.password">manager</property>

          ????????????????????????????????????????????????????????????????????

          ??????? <propertyname="dialect">net.sf.hibernate.dialect.OracleDialect</property>

          ??????? ???????????????????????????????????????????? ?????????????????

          ??????? <!-- mapping files -->

          ??????? <mappingresource="events/Event.hbm.xml"/>

          ?? ?</session-factory>

          </hibernate-configuration>

          ?

          說明:

          Session-factory :特定數(shù)據(jù)庫全局工廠

          connection.driver_class :驅(qū)動類

          connection.url :連接路徑

          connection.username :用戶名

          connection.password :用戶密碼

          mapping resource :持久化類加入映射文件

          ?

          ant 創(chuàng)建 build.xml

          我理解他就是管理文件位置的,就是拷貝,為編譯運行做準(zhǔn)備。

          ?

          SessionFactory 是一個線程安全的全局對象,只需要被實例化一次,一個 Session 代表一個單線程的單元操作。

          ?

          這時又來了一個輔助類 HibernateUtil ,負(fù)責(zé)啟動 Hibernate 和更好的操作 SessionFactory

          最后配置一個日志系統(tǒng), Log4j JDK 1.4 都可以選擇。

          ?

          看到了一種編程模型:線程綁定( thread-bound

          Session 在第一次被使用,或第一次調(diào)用 getCurrentSession() 的時候,其生命周期就開始了,然后它被 Hibernate 綁定到當(dāng)前線程。當(dāng)事務(wù)運行結(jié)束的時候,不管是提交、回滾, Hibernate 都會把 Session 從當(dāng)前線程剝離,并且關(guān)閉它。

          posted on 2006-10-19 18:28 白洋 閱讀(1679) 評論(1)  編輯  收藏 所屬分類: Hibernate 知識點滴

          評論

          # re: Hibernate Day_1 2006-10-20 17:54 壞男孩

          去我blog看看  回復(fù)  更多評論   


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 驻马店市| 乐都县| 亚东县| 南皮县| 当雄县| 娄烦县| 抚顺市| 太原市| 榆社县| 东乌| 邛崃市| 政和县| 互助| 白河县| 嘉祥县| 长汀县| 左权县| 封开县| 包头市| 东安县| 武山县| 项城市| 渭源县| 桐庐县| 宜都市| 湟中县| 财经| SHOW| 永修县| 宜黄县| 广东省| 县级市| 怀柔区| 肃宁县| 武安市| 林周县| 广州市| 岳西县| 永和县| 柯坪县| 沙洋县|