weidagang2046的專欄

          物格而后知致
          隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
          數(shù)據(jù)加載中……

          如何學(xué)習(xí)Hibernate

          Hibernate入門容易,掌握精通我也不敢自夸。我第一遍看Hibernate文檔的時候也覺得很吃力,但不是因為Hibernate難掌握而感到吃力,是因為Hibernate文檔處處都是持久層設(shè)計的經(jīng)驗和最佳實踐。Hibernate文檔準(zhǔn)確的來說,絕大部分內(nèi)容都在講對象的持久層設(shè)計,而不是簡單的Hibernate使用,使用問題查Java doc就夠了。所以學(xué)習(xí)Hibernate,主要是在學(xué)習(xí)持久層的設(shè)計模式,如果你把Hibernate文檔都看完了,還整天只會提那些 Hibernate的配置問題,Hibernate的類調(diào)用問題,我覺得這樣的人還沒有真正的入門,算是白學(xué)了。

          我對Hibernate 的那些配置也不是特別純熟,每次寫hbm,都要對照文檔一點點的檢查;類調(diào)用參數(shù)也不太記得,寫代碼也要Java doc隨時備查。但是我在學(xué)習(xí)Hibernate的時候即集中所有精力來理解Hibernate的運行原理,集中精力來掌握持久層設(shè)計應(yīng)該把握的原則和技巧,這些才對我是最重用的東西。毫不夸張的說,學(xué)習(xí)完Hibernate,我對JDBC的編程也提高了一大截,更不要說對于J2EE架構(gòu)的持久層的框架設(shè)計,基本上是了然于胸了,即使將來換了API,不用Hibernate的,改用JDO,Castor什么的,這些經(jīng)驗一樣照用。

          學(xué)習(xí)Hibernate主要不是在學(xué)習(xí)Hibernat怎么配置,用工具怎么生成hbm文件,如果你把重點放在這里,基本上等于白學(xué)了Hibernate。Hibernate的精華在于無與倫比的靈巧的對象持久層設(shè)計,這些持久層設(shè)計經(jīng)驗不會因為你不用Hibernate而喪失掉,我自己學(xué)習(xí)Hibernate,已經(jīng)明顯感覺到對持久層設(shè)計能力已經(jīng)長了很多經(jīng)驗值了,這些經(jīng)驗甚至不光可以用在Java上,用在.net上也是一樣。所以Hibernate配置的學(xué)習(xí),我只是簡單看看,用的時候知道到那里去查就行了,一堆復(fù)雜的生成工具我根本就看都不去看,這樣算下來,掌握Hibernate的配置,可以用Hibernate來替代JDBC寫程序,不過花上3天時間就足夠了。我想3天時間對你來說不算很奢侈的學(xué)習(xí)代價吧。

          為什么我這么強(qiáng)調(diào)學(xué)習(xí)Hibernate的對象持久層設(shè)計理念呢?那就看你的理想是想一輩子做一個程序員呢?還是想向更高的方向發(fā)展呢?從純做技術(shù)的角度來說,職業(yè)發(fā)展的最高點是“系統(tǒng)架構(gòu)師”,Bill Gates不是還叫做微軟的首席系統(tǒng)架構(gòu)師嗎?System Architect職位需要的是你的學(xué)習(xí)和領(lǐng)悟能力,如果你不能把學(xué)習(xí)Hibernate得到的設(shè)計經(jīng)驗運用到其它地方,那么你是失敗的,也沒有資格做 System Architect。

          不管JDO也好,Hibernate也好,TopLink也好,CocoBase也好,還是 Castor,還是什么Torque,OJB,軟件的使用和配置方法可以各異,但本質(zhì)上都是ORM,都是對JDBC的對象持久層封裝,所以萬變不離其宗,如果你完整的學(xué)習(xí)和掌握Hibernate花了1個月的時間,那么你再學(xué)習(xí)OJB的時間不應(yīng)該超過1個星期,因為你已經(jīng)把對象持久層設(shè)計都了然于胸了,你需要的只是熟悉一下OJB的API和配置罷了,至于怎么運用OJB進(jìn)行持久層的開發(fā)你早就已經(jīng)熟悉了。

          所以當(dāng)你掌握了兩種以上的ORM,你應(yīng)該能夠不拘于使用的ORM軟件的限制,設(shè)計出適合于你的項目的持久層來,這才是System Architect的水準(zhǔn)。用金庸小說來打個比方來說吧,張無忌學(xué)太極劍,只記劍意,不記劍招,這才是真正的高手,而低手就只會去學(xué)習(xí)劍招,而不去領(lǐng)會劍招背后蘊(yùn)含的劍意,所以一輩子都是低手,永遠(yuǎn)不能真正學(xué)會太極劍。所以周顛看到張三豐第二次演示太極劍,招式完全不同就以為是另一套東西,其實本質(zhì)上都一樣。學(xué)習(xí)Hibernate也不要舍本逐末的去學(xué)各種五花八門的工具,重點掌握它的對象持久層設(shè)計理念。
          轉(zhuǎn)自:http://www.cn-java.com/target/news.php?news_id=3165

          posted on 2005-06-16 09:28 weidagang2046 閱讀(172) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 敖汉旗| 丰台区| 眉山市| 长海县| 鄂尔多斯市| 葫芦岛市| 灵石县| 苗栗县| 江安县| 清河县| 宜宾县| 东乡族自治县| 韶山市| 龙陵县| 榆中县| 西城区| 昌平区| 信丰县| 秭归县| 岳阳县| 安仁县| 吉安市| 民县| 北票市| 香河县| 若羌县| 西林县| 即墨市| 宝坻区| 武鸣县| 克什克腾旗| 武冈市| 昌黎县| 汉寿县| 临潭县| 蚌埠市| 潮安县| 志丹县| 应用必备| 资源县| 玛纳斯县|