原始森林中的一個狼窩

          常用鏈接

          統計

          積分與排名

          我的好友

          最新評論

          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看看  回復  更多評論   


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


          網站導航:
           
          主站蜘蛛池模板: 社会| 黄浦区| 准格尔旗| 斗六市| 山西省| 和田县| 辉县市| 高淳县| 阳朔县| 昌宁县| 蓝田县| 双鸭山市| 宣恩县| 郁南县| 志丹县| 皋兰县| 麻栗坡县| 洛浦县| 汶川县| 大荔县| 从化市| 平阴县| 时尚| 乌鲁木齐县| 乌拉特中旗| 龙岩市| 新民市| 澄城县| 普陀区| 革吉县| 鄂伦春自治旗| 江孜县| 陈巴尔虎旗| 仲巴县| 隆尧县| 红桥区| 庄河市| 邹城市| 丰原市| 墨玉县| 四子王旗|