原始森林中的一個狼窩

          常用鏈接

          統計

          積分與排名

          我的好友

          最新評論

          Hibernate Day_1

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

          Hibernate 是一個面向 Java 環境的對象 / 關系數據映射工具,注意,這是一種技術工具。

          ORM object relational mapping 這個術語表示一種技術,用來把對象模型表示的對象映射到基于 SQL 的關系模型數據結構中去。

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

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

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

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

          Hibernate 不會從 web 加載 DTD 文件,但它會首先在應用程序的 classpath 中查找。 DTD 文件包含在 hibernate3.jar 里,同時在 Hibernate 發布包的 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 表示唯一標識;

          property 表示類的屬性字段;

          name 是持久化類名;

          table 是數據表名;

          column 是數據字段名;

          generator 是唯一標識的生成方式;

          type 是映射的數據類型。

          ?

          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 :特定數據庫全局工廠

          connection.driver_class :驅動類

          connection.url :連接路徑

          connection.username :用戶名

          connection.password :用戶密碼

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

          ?

          ant 創建 build.xml

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

          ?

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

          ?

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

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

          ?

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

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

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

          評論

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

          去我blog看看  回復  更多評論   


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


          網站導航:
           
          主站蜘蛛池模板: 临汾市| 河南省| 潞城市| 内黄县| 福建省| 南溪县| 雅江县| 弋阳县| 平塘县| 高青县| 太保市| 临颍县| 大丰市| 平顶山市| 南阳市| 湘潭市| 汶上县| 子长县| 曲水县| 巴塘县| 赫章县| 鲁甸县| 麻栗坡县| 会理县| 临江市| 大安市| 苍梧县| 融水| 高邑县| 延吉市| 葵青区| 绥德县| 法库县| 关岭| 扎囊县| 合肥市| 和顺县| 澄江县| 安多县| 永安市| 永福县|