終于把hibernate調通了,一個簡單的入門例子

           

            花了小半天,終于把一個簡單的hibernate程序搞通了,成功的向數據庫中添加了數據。現在冷靜下來想一下,其實也挺簡單的,但在具體的過程中自己出了不少的錯誤,究其原因有二:其一是自己從網上找了一些程序,但沒有理解其根本意思就開始照著上面的代碼編寫,結果編寫出來的大多不能正常運行;其二是由于公司只提供eclipse開發工具,沒有myeclipse插件,所以開發hibernate, struts框架的時候就很不方便。我采用hibernate Synchronizer插件來進行開發。因為在有許多同行都推薦它,但具體怎么樣,我現在還不好說,畢竟剛開始用這個插件。若想了解hibernate Synchronizer的特性,網上google一下,多的是。

          好了,現在具體來說說這個簡單的例子。

          首先,需要具備以下條件;

          1eclipse 3.2或者其它版本。此文所采用的是3.2英文版。

          2Mysql 數據庫以及驅動程序.jar文件。

          3hibernate Synchronizer插件。可從sourcefourge上下載。

          4hibernate文件包,里面包括所有的jar文件。

          第二:在MYSQL中建立一個測試數據庫,名為test。并建立一個數據表person:

          use test;

          create table person(

                 ID int auto_increment primary key,

                 Name char(10),

                 Sex char(1),

                 Address char(20));

          第三,在eclipse中新建一個java project。命名為hibernateTest。并導入JRE文件.
           

          第四,右鍵單擊已經建立好的JAVA工程,將hibernatemysql.jar文件導入到工程中。具體操作:右鍵單擊工程->Build path->Configure build path->add external JARS 導入hibernatemysql的相關jar文件。至此我們已經搭建好了開發環境,下一步開始進行實際開發。

          第五,右鍵單擊工程,選擇new-->other-->hibernate-->hibernate configure file,在彈出窗口中填入相應內容,eclipse將會自動生成hibernateconfigure 文件。在彈出的窗口中也可以選擇數據源配置方式,方法只要在窗口在connection項中選擇database便可。有興趣的可以自己試試看。

          注意:請保證configure文件是處于工程的根目錄下面,否則在編譯的時候會因為找不到該文件而出錯。

          第六,在工程中新建一個包,名字隨你喜歡,主要是用來存放一些JAVA文件。右鍵單擊工程hibernateTestànewàpackageà寫入包名,這里我所用的包名是src。完成以后,單擊所建立的包,newàotheràhibernateàhibernate mapping file,出現配置窗口,如果前面步驟正確的話,將會看到如圖的畫面,點擊tables對應的refresh按鍵,將會出現你所建數據庫中的表,此時選擇我們所建立的person表,點擊finish,會看到src目錄中出現了一個person.hbm.xml文件,利用hibernate Synchronizer Editer打開這個文件,方法:右鍵單擊該文件àopenwithàhibernate Synchronizer Editer。查看其中ID<generator class>屬性,確認該屬性配置為identity,自動增長型。配置完成。

          經過上一步后,因為我們采用hibernate Synchronizereclipse會為我們自動生成一個person.java文件和一個BasePerson.java文件,BasePerson.java位于一個獨立包中,主要是提供對數據庫表person的相應字段的getset方法,它實現Serializable接口。并重寫了其中的equals(),hashCode()toString()方法。我理解為實際上就是一個POJO,沒有什么其它特殊的。而person.java只是繼承了BasePerson.java,這樣做的好處就是實現程序更好的封裝。

          上面的步驟都完成以后,我們需要將person.hbm.xml文件映射到hibernate.cfg.xml文件中去,這樣才能程序找到person這個類。方法:依次執行12。(1)右鍵單擊person.hbm.xmlàhibernate Synchronizerà Synchronizefiles 。(2右鍵單擊person.hbm.xmlàhibernate SynchronizeràAdd mapping reference

          經過以上所有操作,我們完成了所有需要配置的文件,現在來編寫一個測試文件,測試我們的上述配置是否成功。新建一個JAVA文件。放在src 目錄下,在下輸入以內容:

          package src;

          import java.util.Date;

          import java.util.Iterator;

          import org.hibernate.Session;

          import org.hibernate.SessionFactory;

          import org.hibernate.cfg.Configuration;

          public class Hello {

                 /**

                  *

                  *

                  */

                 public Hello(){             

                 }

                 public static void main(String[] args) throws Exception{

                        Configuration cfg = new Configuration().configure();

                        SessionFactory sessionFactory = cfg.buildSessionFactory();

                        Session session = sessionFactory.openSession();

                        Person person = new Person();

                        person.setName("hejian22");

                        person.setSex("F");

                        person.setAddress("http://test.com.cn");     

                        session.save(person);

                        session.flush();

                        session.close();

          }

          }

          完成后,運行該文件,會出現錯誤,經過多番查找資料,才發現hibernate Synchronizer插件有一個BUG,當我們通過add mapping filehibernate.cfg.xm.添加映射文件的時候,它會自動將hibernate.cfg.xm.的標題部份去掉。這時只要把標題部份寫上便可以成功執行。

          在這里我只寫出了向數據庫中添加記錄這一項功能,其它功能可以由自己去試驗。都是最基礎的東西,還得繼續努力。

          總結:經過這次教訓,自己意識到一個問題,我們不能總把從網上找到的代碼就直接拿去運行調試,而應該弄清楚它的基本結構,因為可能其中存在許多問題,要想把一段代碼真正變成自己的,還是要經過一定的探索。


           

          posted on 2007-09-29 19:17 ^小^齊^ 閱讀(852) 評論(1)  編輯  收藏 所屬分類: Hibernate

          評論

          # re: 終于把hibernate調通了,一個簡單的入門例子 2007-09-29 20:34 flyingdancing

          不錯~~~~~~  回復  更多評論   


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


          網站導航:
           
          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          相冊

          我喜歡去的地方

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 涟源市| 兴义市| 博野县| 富民县| 崇文区| 韶关市| 彩票| 滨州市| 循化| 大埔县| 山西省| 泌阳县| 景东| 将乐县| 新巴尔虎左旗| 扬州市| 高密市| 万源市| 青海省| 家居| 石景山区| 晋中市| 喀什市| 巩义市| 卢湾区| 天全县| 齐齐哈尔市| 乾安县| 平果县| 延吉市| 和静县| 泗阳县| 峨眉山市| 开化县| 仁化县| 宁河县| 肇源县| 连江县| 奉新县| 麻城市| 赤壁市|