原始森林中的一個狼窩

          常用鏈接

          統計

          積分與排名

          我的好友

          最新評論

          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 白洋 閱讀(1680) 評論(1)  編輯  收藏 所屬分類: Hibernate 知識點滴

          評論

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

          去我blog看看  回復  更多評論   


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


          網站導航:
           
          主站蜘蛛池模板: 荣成市| 大安市| 潜山县| 昌邑市| 资兴市| 台州市| 垦利县| 昭通市| 图木舒克市| 西城区| 古田县| 木兰县| 靖州| 三原县| 新化县| 鲁山县| 富锦市| 天全县| 麻城市| 巴林右旗| 庆城县| 涡阳县| 慈溪市| 梁平县| 浦城县| 荣昌县| 禄劝| 临猗县| 襄城县| 桂阳县| 遂宁市| 织金县| 江安县| 黄梅县| 松阳县| 宁城县| 房产| 华亭县| 大姚县| 马鞍山市| 乐东|