利用Eclipse開發Hibernate應用程序

          利用Eclipse開發Hibernate應用程序

          時間:2006-01-24
          作者:俞黎敏
          瀏覽次數: 22741
          本文關鍵字:Eclipse,?Hibernate,?插件,?ORM
          文章工具
          推薦給朋友?推薦給朋友
          打印文章?打印文章

            介紹如何利用Hibernate Synchronizer插件在Eclipse 3.0.1中快速的開發Hibernate應用程序,提高我們的工作效率。

            Eclipse是目前非常流行的開發平臺,開放擴展的架構讓很多程序員找到了自己個性化的工作環境,Hibernate也是目前很流行的O/R Mapping框架,至少在EJB 3.0大行其道之前,它是我們在考慮O/R Mapping時非常好的選擇。

            關于Hibernate框架的細節,請參考《Hibernate in Action》一書。

            首先需要安裝這個插件,Eclipse 3.0.1為我們提供了更加方便的插件管理方式,選擇菜單“幫助—軟件更新—查找并安裝”,選擇“搜索要安裝的新功能部件”,操作界面如下:

            選擇 New Remote Site ,填寫名稱 Hibernate PlugIn ,下面的URL中填入:http://www.binamics.com/hibernatesync

          如下圖:

            然后在“安裝”界面中選中我們剛添加的 Hibernate PlugIn ,打開它,選中下一級的Synchronizer,然后Next,以下的安裝根據提示進行Next即可了。
            Eclipse就可以自己下載完成安裝,然后Eclipse自動重啟動一次就完成了。

          Spring PlugIn的地址為:
          http://springframework.sourceforge.net/spring-ide/eclipse/updatesite/
          安裝配置類似于Hibernate PlugIn的安裝。

          Spring的地址為:
          http://www.springframework.org/

            下面演示一個最簡單的單表操作,讓我們熟悉開發過程。我們選擇MySQL數據庫來做這個應用,首先在MySQL里建立一個新的數據庫為HibernateTest,再建立一個數據表,名為Person,包含ID, Name, Sex, Address四個字段,建表語句如下:

          # Host: localhost
          # Database: hibernatetest
          # Table: 'person'
          # 
          CREATE TABLE `person` (
            `ID` int(11) NOT NULL auto_increment,
            `Name` varchar(20) NOT NULL default '',
            `Sex` char(1) default NULL,
            `Address` varchar(200) default NULL,
            PRIMARY KEY  (`ID`)
          ) TYPE=MyISAM; 
          

            然后新建一個普通的Java項目:“File -> Project -> New Project ->Java Project

            輸入項目名稱:HibernateMySQL

            注意加入Hibernate的所有lib文件,包括有Hibernate下面的hibernate2.jar和lib目錄下面的所有.jar文件;
          還有要加入MySQL的jdbc驅動文件,比如mysql-connector-java-3.0.14-production-bin.jar
          驅動程序自己選擇加載,版本不同,文件名也不同:)

            下面我們需要在項目中加入一個Hibernate的配置文件,在src目錄下選擇 New -> Other -> Hibernate -> Hibernate Configuration File,如下圖:

            在彈出的界面中,你需要指定要使用的數據庫,以及連接數據庫所需要的信息,我們對應的選擇了數據庫為MySQL,并配置了數據庫的URL和管理員帳號與密碼,如下:

          Database Type: QL
          Driver Class:  org.git.mm.mysql.Driver
          Database URL: jdbc:mysql://localhost:3306/HibernateTest
          Username: root
          Password: 
          

            點擊Browse按鈕,在彈出的框中輸入Driver,在下面就會出現相應的驅動所在的包
          我們選中org.git.mm.mysql.Driver所在的包的文件,確定即可。

            在上圖中,我們還可以指定從JNDI數據源中獲得連接,可以點擊 Datasource 標簽進行配置。

            點擊 Finish 按鈕之后系統會自己生成一個名為 hibernate.cfg.xml 的文件,里面包含了基本的配置信息,如果需要高級配置,可以手動配置,也可以通過其它插件來進行編輯,比如MyEclipse的XML Editor

            下面要生成映射文件,首先新建一個包 New -> Package,輸入net.echochina.hibernatetest

            在這個包下選擇 New -> Other -> Hibernate -> Hibernate Mapping File ,在彈出的界面中點擊 Refresh 按鈕,將會列出庫中所有的數據表,選中我們要使用的 Person 表,點擊 Browse 按鈕,選擇我們所要生成的POJO文件所在的包:net.echochina.hibernatetest

          如下圖:

            在上述界面的 Properties 標簽中可以配置hbm的其他選項,包括文件擴展名,聚合列名,ID生成規則等。完成后,系統會自動生成一個名為 Person.hbm 的文件,我們可以通過這個文件生成相關的存根類。

            在Person.hbm文件上單擊右鍵,選擇 Hibernate Synchronizer -> Synchronize Files

            該操作將生成三個包八個類文件,里面封裝了Hibernate的操作細節,讓我們可以專心面對業務邏輯的開發,仔細閱讀這些文件可以提高你對Hibernate的認識,增長應用技巧。

            然后我們需要在Hibernate的配置文件中添加對Person 的相關信息,在Person.hbm上單擊右鍵,選擇Synchronizer -> Add Mapping Reference

            現在我們可以開始編寫自己的程序邏輯了,代碼可以寫在
          net.echochina.hibernatetest.dao.PersonDAO類中,這個類的代碼不會被插件進行修改的。

            首先在數據庫里增加一條新的記錄
            在PersonDAO類中增加一個引入import net.echochina.hibernatetest.Person;
            然后加入一個main方法,內容如下:

          public static void main(String args[])
          {
          	try
          	{
          		_RootDAO.initialize();
          		PersonDAO persondao = new PersonDAO();
          		Person person = new Person();
          		person.setName("YuLimin");
          		person.setSex("M");
          		person.setAddress("http://Java.EchoChina.net");
          		persondao.save(person);
          	}
          	catch(Exception e)
          	{
          		e.printStackTrace();
          	}
          }
          

            //測試MySQL的中文問題:更改內容如下,把setName的參數改為中文的內容:

          person.setName("俞黎敏");

            這里應當到hibernate.cfg.xml文件的<session-factory/>塊中增加上如下兩行設置

          <property name="connection.useUnicode">true</property>
          <property name="connection.characterEncoding">GBK</property>

            這樣插入數據與讀取數據時才不會有中文的問題,如果仍有中文問題請Google吧:)

            可以看出,插件已經把session操作和事務操作都封裝起來了,我們的代碼工作得到了極大的簡化。而且我們可以利用插件自帶的Hibernate Editor來編輯hbm文件,非常方便。
            我們還需要把ID的生成方式改為 identity,右鍵Person.hbm,Open With -> Hibernate Editor

           

            把ID的生成方式改為 identity

            要讓這個程序正常運行,還需要對配置文件hibernate.cfg.xml作一些修改。
            使用Eclipse的 文本編輯器 打開該文件,其中有如下的內容:

          <!-- 
          <property name="hibernate.transaction.factory_class">
          net.sf.hibernate.transaction.JTATransactionFactory
          </property>
          <property name="jta.UserTransaction">
          java:comp/UserTransaction
          </property>
           -->
          

            由于在我們的例子中,并沒有使用JTA來控制事務,所以需要將上面的內容注釋掉,程序才能正常運行。

            現在可以開始運行了,點擊Run

            在出現的配置中選擇Java Application,Name中輸入PersonDAO

            單擊Search 按鈕,在彈出地框中選擇net.echochina.hibernatetest包中的PersonDAO類

            OK之后,點擊Run開始運行,如果以上各步操作正確的話,可以看到數據已經被保存到數據庫。

            如果在實際開發工作中,需要重新設計數據表結構,那么只需要在.hbm文件中做相應的修改,然后執行 Synchronize and Overwrite 的操作,插件會重新生成存根文件,我們只需要修改程序邏輯就可以了,非常方便。有了這樣的功能插件,我們可以極大的從配置文件的編寫、查錯中解脫出來,從而提高我們的工作效率。

          Hibernate 常用工具

          Hibernate Synchronizer 很好的輔助開發工具,是一個Eclipse 的插件,可以生成80%的代碼,首選。
          MyEclipse 安裝的 3.8.3 感覺非常的強大,主要是因為他是付費的,做得比較全面,喜歡他們的struts 組件,開發 Struts 必不可少。
          Hibernator Hibernate查詢的輔助工具,可以使用 HSQL進行查詢,測試HSQL的好工具,是個Eclipse插件。
          Hibern8IDE(現更名為:HibernateConsole) 一個單獨運行的Hibernate工具,可以運行 Hibernate Query Language (HQL)語句。
          MiddleGen 生成持久對象的工具,可以生成

          Persistence layer with EJB (CMP 2.0)
          Persistence layer with JDO
          Persistence layer with Hibernate
          Persistence layer with Torque
          Database GUI with JSP/Struts

          http://spindle.sourceforge.net 開發Tapestry的必備

          http://springui.sourceforge.net 寫Spring Application Context File的輔助好工具
          dotdotdot

          dot
          ??作者其它文章

          ?

          posted on 2007-03-07 19:06 77 閱讀(343) 評論(0)  編輯  收藏


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


          網站導航:
           
          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(12)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          API文檔

          java開發與研究

          にほん

          上海房產

          東京生活

          數據庫大全

          編程與開發

          美國開發生活

          走向管理

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 元朗区| 老河口市| 连江县| 长治县| 来凤县| 闸北区| 蒲城县| 平原县| 东明县| 阿荣旗| 铅山县| 鄂托克前旗| 长宁区| 襄汾县| 阿尔山市| 新源县| 湘潭市| 乌兰察布市| 上栗县| 邮箱| 深圳市| 山东| 铁岭县| 德昌县| 喀喇沁旗| 博白县| 沙雅县| 镶黄旗| 乾安县| 习水县| 石泉县| 景东| 辽中县| 安图县| 当涂县| 鄱阳县| 武宣县| 盘锦市| 葫芦岛市| 昌吉市| 马尔康县|