顯示具有 Hibernate 標籤的文章。 顯示所有文章
顯示具有 Hibernate 標籤的文章。 顯示所有文章

星期一, 5月 11, 2009

Hibernate設定連接池的問題

設定連接池時, 遇到兩個問題

1. Hibernate並未使用所設定的C3P0連接池, 出現下列訊息
INFO [org.hibernate.connection.DriverManagerConnectionProvider] - Using Hibernate built-in connection pool (not for production use!)

解決方法是在hibernate.cfg.xml裡面加入這行
<property name="connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
</property>


2. 連接池程式無法正確使用Log4J的錯誤訊息
log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog).
log4j:WARN Please initialize the log4j system properly.

雖然說warning不是很要緊, 但是看到這樣的訊息還是讓我很想處理掉這個狀況.

解決方法很簡單, 在log4j.properties裡加入這行

log4j.logger.com.mchange.v2=INFO, A1

P.S. A1是我設定的appender

星期五, 5月 08, 2009

Hibernate初體驗

資料庫一向是我特別有興趣的部分, 但Hibernate卻一直沒好好研究與使用, 除了是對於自己既有技能的依賴, 另外也是不想因為framework而失去某些彈性. 但現在Hibernate支援了JPA(EJB3.0規格中的重點之一), 所以系統若需要分散式架構時也可以很容易的擴充, 另外JPA也可以使用在GAE上, 因此現在學習使用Hibernate可說是非常有利的時機點.

我先閱覽了 良葛格學習筆記, 受益良多, 也對於Hibernate有一個快速的認識 (這幾年來, 我應該是第四次看這個網站上的Hibernate介紹了, 站主真的很用心, 更新的也很快).

不過接下來的實作練習還是吃了不少苦頭, 因為
  • 我不喜歡重頭開始刻程式, 所以看到Hibernate Tool可以從資料庫反轉產生code就覺得非用不可
  • 我並不想認識原來的Hibernate, 也就是還需要*.hbm.xml的寫法
  • Hibernate的JPA實作包括 Annotations 和 EntityManager, 我並不清楚這兩者的關係以及與EJB的關聯性
  • 我也沒搞懂persistence.xml 和 hibernate.cfg.xmlx兩者的關係以及與EJB的關聯性, 連要放哪個目錄下都不知道
  • 一堆相依的libraries也沒搞懂
  • 因為需求的關係, 目前我只想使用Tomcat, 並不想使用JBoss/ Glassfish
  • 我不想使用command line來跑Ant之類的東西, 一心只想使用Eclipse來操作
  • 我甚至也不知道Hibernate可以不在AP server/ Web server跑, 哈哈
  • 我一向沒看完使用者手冊的習慣... 真糟糕的習慣...
綜合以上就讓我吃足了苦頭, 雖然後來都搞清楚了, 也發現在良葛格學習筆記中其實大部分都已說得很清楚, 不過這樣try-error的過程中也算是快速累積經驗吧, 哈哈...

另外試著跑自己想要的SQL statement和子查詢, 結果也是ok的.

初體驗的結論是, 目前看來一切都很不錯. 要繼續深入研究下去囉!