用eclipse+Hibernate Synchronizer(plugin)開發例子(原創)

來源:互聯網
上載者:User
原創
1. 開發環境準備

       Eclipse3.0.1

       下載:http://www.eclipse.org/

Eclipse Plugin:Hibernate Synchronizer

下載:http://sourceforge.net/project/showfiles.php?group_id=99370

       Hibernate-2.1.8

       下載:http://internap.dl.sourceforge.net/sourceforge/hibernate/hibernate-2.1.8.zip

       MyS       QL 4.1

       下載:http://www.mysql.com

2.示範一個簡單例子

2.1在mysql資料庫中的test資料庫下建立表內容表Content,指令碼如下:

CREATE TABLE Content (

FID int(11) NOT NULL auto_increment,

FTitle varchar(100) NOT NULL default '',

FContent Text ,

PRIMARY KEY  (FID)

);

 







2.2檢測Hibernate外掛程式是否安裝成功,進入菜單”window”下的”Preferences”,就有如下圖所示的:





 







2.3用eclipse建立一個JAVA項目,如下所示:

 









選“Next>”一直到完成。

有一點要注意的是,建立完項目後,還要將Hibernate庫及mysql驅動加入到項目的Libraries中。

2.4加入Hibernate設定檔“hibernate.cfg.xml”

選擇該項目,點右鍵,“New”à “Other”進入如下介面,





選擇“Hibernate Configuration File”à “Next”



選擇資料庫類型、Database URL、Username及Password,OK, 檔案“hibernate.cfg.xml”系統自動產生。

2.5加入“*.hbm”設定檔

同樣是,選擇該項目,點右鍵,“New”à “Other”進入,不過這次要選擇的是“Hibernate Mapping File”,點“Next”進入如下介面





注意,如果資料庫有密碼,則要先要輸入密碼再點“Refresh”按鈕,資料中的表就會顯示在Tables框中。選擇一個表,如content後,點“Finish”按鈕。

2.6根據content.hbm產生相關的JAVA代碼,選擇Content.hbm右鍵,操作如下介面:



2.7接一來簡單地增加幾行代碼就可以了,進入系統產生的包DAO中,如例子中的“com.hibernate.example.dao”,開啟檔案ContentDAO.java,代碼修改如下:

0: /*



1:  * 建立日期 2004-12-10



2:  * @author Oscar Lao



3:  * CopyRight 2005 S.W.S



4:  */



5:



 6: package com.hibernate.example.dao;



7:



 8: import org.apache.log4j.Logger;



9:



10: import com.hibernate.example.Content;



11: import com.hibernate.example.base.BaseContentDAO;



12:



13: /**



14:  * @author Oscar Lao



15:  * QQ:63065068



16:  * Email:e-silver@163.com



17:  * ClassDesc:Hibernate Example



18:  **/



19: public class ContentDAO extends BaseContentDAO {



20:     private static final Logger logger = Logger.getLogger(ContentDAO.class);



21:



22:     public static void main(String[] args){



23:         if (logger.isDebugEnabled()) {



24:             logger.debug("程式正在運行...");



25:         }



26:



27:         try {



28:             _RootDAO.initialize();



29:            



30:             ContentDAO cond = new ContentDAO();           



31:             Content cont = new Content();



32:             for (int i = 1; i < 100; i++) {



33:                 cont.setFid(new Integer(i));



34:                 cont.setFTitle("Title"+i);



35:                 cont.setFContent("Content"+i);



36:                 cond.save(cont);



37:            }



38:         } catch (Exception e) {



39:             logger.error("運行時出現異常...", e);



40:         }



41:



42:         if (logger.isDebugEnabled()) {



43:             logger.debug("運行完畢。");



44:         }



45:     }



46: }

 







3.欣賞成果

如果所有的配置正確,ContentDAO類應該可以運行了,運行後,程式會向表Content插入100條記錄。祝你好運!!







4.在我測試時出現如下錯誤,現在也貼出來,希望對大家有所協助:







4.1如果運行時出現如下異常







Could not find UserTransaction in JNDI javax.naming.NoInitialContextException:…







解決:把設定檔“hibernate.cfg.xml”中的







  <property name="hibernate.transaction.factory_class">







           net.sf.hibernate.transaction.JTATransactionFactory







       </property>







       <property name="jta.UserTransaction">







           java:comp/UserTransaction







       </property>







 兩行設定JTA控制事務的屬性注釋掉就可以了,因為程式裡還未使用JTA控制事務。







4.2 如果運行時出現如下異常







Error parsing XML: /hibernate.cfg.xml(33) The content of element type "session-factory" is incomplete, it must match "(property*,mapping+,(class-cache|collection-cache|jcs-class-cache|jcs-collection-cache)*)".

       解決:在設定檔“hibernate.cfg.xml”中的<session-factory>與</session-factory>之間加







              <mapping resource="Content.hbm" />







      







 







第一次寫關於Hibernate的文章,如有不對的地方,請批評指正。







最後,祝大家成功!!^_^








相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。