學習Hibernate的一些體會
學習Hibernate有一段時間了,但是一些心生余悸的擔心還是會留在腦海中,
生怕有一天,她又開始耍脾氣,不好好工作了。也不知道為什么,開源的東西,
有利就有弊.那些版本問題經常困擾著我.
一開始,接觸Hibernate,總要從網上找些例子來熟悉一下基本的應用方法和
使用模式,先從csdn上面找,因為是專業的網站嘛,當然也最放心.于是找了兩個:
地址如下:
1. http://blog.csdn.net/wujiang/archive/2005/03/01/306154.aspx
2. http://blog.csdn.net/toicecream/archive/2005/02/21/255949.aspx
類似以上兩個的連接也是多不勝數啊.把他們down下來.開始step by step的做個
練習,看看Hibernate 是不是想傳說中的那么好用,什么事情都是用了才知道好不好啊!!
先按照他們提供基本配置找相關軟件,數據庫,等必備配置產品.(就是由于這
一步沒有做好啊!!).由于自己已經在用很多開源產品,對他們也還算熟悉,那些Tomcat
.MySQL.ant等小軟件,服務器等也搜集了不少,雖然版本稍又不同,但估計也不會差
到哪里吧.(我的tomcat是5.0.28.blog上要求的是5.0.9).因此,估計可以測試成功吧.
就沒太在意.但是一切皆有可能啊.hehe. mysql 的配置也是一路驚險啊.
我以前自己用的圖形界面是mysqlcc,但從網上消息得知,mysqlcc已經不被支持了,
因此也根據網上一些大哥們的知道,down了個administrator和query browser.
誰知道的是,什么事情都有可能不按預想的路線走..下過了,才知道那些軟件還存在
些bugs.也不知道是我自己的問題,還是人家軟件的問題.反正就是用戶的信息和權限
不能正常保存,提示訪問內存錯誤,(.dll問題).沒辦法.先湊合著用吧.
按照上面提供兩個例子做好相應的文件.啟動服務器....錯誤...
什么錯誤呢?不能打開連接(can't open connection).于是我就順藤摸瓜,按照
錯誤提示的堆棧信息,一步步找信息.找到以后,還是不能解決問題啊.都不知道為什么
會打不開連接??初步推算,是數據庫的設置的問題.可我的hibernate.cfg.xml配置的都對啊.
除了密碼我改了一下以外,我別東西全部照抄.沒想到還錯.My God!!難道上帝連這點
權利都不給我.這個時候,我不能不回歸自然,走到最初了.于是把數據庫的訪問密碼刪掉
(mysql和hibernate.cfg.xml同時修改).再測試.成功...
終于大功告成了.心里總算可以輕松了.(做程序有時候真累,但是把自己的時間和生命
花費在自己喜愛的事業中,值了.),可是知道現在我還是不明白.在我修改mysql的密碼
的時候,我進入mysql治理時,系統必須讓我輸入密碼,證實密碼已經保存了.可時為什么
在其他地方卻不能訪問呢.雖然知道是不是mysql權限的問題.但還想不通是什么原因.
最后,把學習Hibernate的一些體會說一下,也算是自己做個總結,吸取個教訓吧:
1.假如是手工編寫代碼.(而不是使用jbuilder等一些IDE)那么你必須保證
hibernate.cfg.xml放在字節碼文件(.class)的包最高層次,比如,你有一個文件
(org.cheng.Test.class)放到了classes目錄下面,那么你的hibernate.cfg.xml也必須
放到classes目錄下面.
2.你的對象影射文件(如:Customer.hbm.xml)必須與目標文件(編譯好的.class文件)
放在同一目錄.即Customer.class 與Customer.hbm.xml放在同一目錄.
3.保證你的數據庫本身沒有問題.這也是要害啊.
以上三點是保證你的Hibernate應用可以正常運行的基礎,假如有什么問題,希望好好
檢查以上三點的配置情況,也許會找到答案.
另外.在測試Hibernate期間,也弄到了ant的一個問題,希望能和大家分享一下,
以免碰到同樣的問題,又要找資料了.
當我用ant去編譯build.xml文件時,出現如下提示錯誤:
"Invalid implementation version between Ant core and Ant optional tasks.
core : 1.6.3
optional: 1.5.3"
都不知道什么原因,于是網上拼命搜資料.最后才知道有很多原因可能導致這個問題:
1.其他軟件產品(JBuilder.Weblogic.Eclipse.J2EESDK等)所附帶的ant的版本與
你自己安裝的版本存在沖突,由于類的版本有沖突,問題當然會有了.
2.你自己安裝的ant中存在一些*optional.jar文件存在版本沖突.
不管什么原因,只要能解決就好了,我看了網上很多資料,大都沒有太好的解決方法.
有的讓你重裝,有的讓你改動其他產品中的ant軟件,即覆蓋.
還有一種比較適合我,不知道對你有沒有用處?就是將存放ant的庫的那個目錄
加入到CLASSPATH的前端,這樣當ant使用運行的時候,就可以找到最新的版本,而在后面假如
發現舊版本,也不會覆蓋這個版本,從而保證你的ant可以正常運行,對其他軟件的影響也最小.
假如不是這樣,當ant運行的時候,她可能先發現舊版本,當在類路徑發現新的版本時,就會將一些
文件進行覆蓋.所以會導致一些錯誤.
好了,最后也祝你學習愉快,進步快啊.
新聞熱點
疑難解答