Sung in Blog

                     一些技術(shù)文章 & 一些生活雜碎
          Eclipse是目前非常流行的開發(fā)平臺,開放擴展的架構(gòu)讓很多程序員找到了自己個性化的工作環(huán)境,Hibernate也是目前牛叉得不得了的框架,至少在EJB 3大行其道之前,它是我們在考慮OR映射時非常好的選擇。本文主要介紹如何利用Hibernate Syn插件在Eclipse 3.0.1中快速的開發(fā)Hibernate應用程序,提高我們的工作效率。關(guān)于Hibernate框架的細節(jié),本文不做過多的討論,請參考相關(guān)資料,推薦《Hibernate in action》一書。
            
            首先需要安裝這個插件,Eclipse 3.0.1為我們提供了更加方便的插件管理方式,選擇菜單“幫助?軟件更新?查找并安裝”(本人的Eclipse使用了語言抱漢化,請英文界面用戶自行對照),選擇“搜索要安裝的新功能部件”,操作界面如下:
             
            選擇“新建遠程站點”,填寫名稱“Hibernate plugin”,下面的URL中填入:http://www.binamics.com/hibernatesync
            如下圖:
             
            然后在“安裝”界面中選中我們剛添加的“Hibernate plugin”,一路Next,Eclipse就可以自己下載完成安裝,然后Eclipse自動重啟動一次就完成了。
            
            下面演示一個最簡單的單表操作,可以讓我們很快熟悉開發(fā)過程。我們選擇Mysql數(shù)據(jù)庫來做這個應用,首先建立一個數(shù)據(jù)表,名為user_info,包含id、name、password三個字段,建表語句如下:
            
            # Host: localhost
            # Database: test
            # Table: 'user_info'
            #
            CREATE TABLE `user_info` (
            `id` int(11) NOT NULL auto_increment,
            `name` varchar(100) NOT NULL default '',
            `password` varchar(100) NOT NULL default '',
            PRIMARY KEY (`id`)
            );
            
            然后新建一個普通的Java項目:“新建?項目?Java項目”,注意加入Hibernate的所有l(wèi)ib文件,以及mysql的jdbc驅(qū)動文件。下面我們需要在項目中加入一個Hibernate的配置文件,在src目錄下選擇“新建?其他?hibernate?hibernate configuration file”,如下圖:
             
            在彈出的界面中,你需要指定要使用的數(shù)據(jù)庫,以及連接數(shù)據(jù)庫所需要的信息,我們對應的選擇了數(shù)據(jù)庫為mysql,并配置了數(shù)據(jù)庫的URL和管理員帳號,如下:
             
            在上圖中,我們還可以指定從JNDI數(shù)據(jù)源中獲得連接,可以點擊“Datasource“標簽進行配置。
            
            “完成”之后系統(tǒng)會自己生成一個名為“hibernate.cfg.xml”的文件,里面包含了基本的配置信息,如果需要高級配置,可以手動添加。
            
            下面我們要生成映射文件,首先新建一個包“org.bromon.zizz.pojo”,在這個包下選擇“新建?其他?hibernate?hibernate mapping file”,在彈出的界面中點擊“刷新”,講會列出庫中所有的數(shù)據(jù)表,選中我們要使用的“user_info”表,以及我們要生成的pojo文件所在的包:org.bromon.zizz.pojo。如下圖:
             
            在上述界面的“Properties”標簽中可以配置hbm的其他選項,包括文件擴展名,聚合列名,ID生成規(guī)則等。完成后,系統(tǒng)會自動生成一個名為“UserInfo.hbm”的文件,我們可以通過這個文件生成相關(guān)的存根類。在UserInfo.hbm文件上選擇“Hibernate Synchronizer?Synchronize files”:
             
            該操作將生成三個包八個類文件,里面封裝了Hibernate的操作細節(jié),讓我們可以專心面對業(yè)務邏輯的開發(fā),仔細閱讀這些文件可以提高你對Hibernate的認識,增長應用技巧。
            
            然后我們需要在Hibernate的配置文件中添加對UserInfo的相關(guān)信息,在UserInfo.hbm上選擇“Synchronizer?Add Mapping Reference”。現(xiàn)在我們可以開始編寫自己的程序邏輯了,代碼可以寫在org.bromon.zizz.pojo.dao. UserInfoDAO中,這個類的代碼不會被插件修改。我們首先創(chuàng)建一條新的記錄,在該類中加入一個main方法:
            
            public static void main(String args[])
            {
            try
            {
            _RootDAO.initialize();
            UserInfoDAO uid=new UserInfoDAO();
            
            org.bromon.zizz.pojo.UserInfo ui=new org.bromon.zizz.pojo.UserInfo();
            ui.setName("bromon");
            ui.setPassword("123");
            
            uid.save(ui);
            
            }catch(Exception e)
            {
            e.printStackTrace();
            }
            }
            
            可以看出,插件已經(jīng)把session操作和事務操作都封裝起來了,我們的代碼工作得到了極大的簡化。而且我們可以利用插件自帶的Hibernate editor來編輯hbm文件,非常方便,我們需要把ID的生成方式改為“identity”:
            
            要讓這個程序正常運行,還需要對配置文件hibernate.cfg.xml作一些修改。值得注意的是,請不要在該插件以外的環(huán)境中修改配置文件(比如使用DreamWeaver之類的工具編輯文件),否則會造成系統(tǒng)與資源不同步的錯誤,這可能是插件的一個bug。使用Eclipse的“文本編輯器”打開該文件,其中有如下的內(nèi)容:
            
            <property name="hibernate.transaction.factory_class">
            net.sf.hibernate.transaction.JTATransactionFactory
            </property>
            <property name="jta.UserTransaction">
            java:compUserTransaction
            </property>
            
            由于在我們的例子中,并沒有使用JTA來控制事務,所以需要將上面的內(nèi)容注釋掉,程序才能正常運行。
            
            OK,Run一下,可以看到數(shù)據(jù)已經(jīng)被保存到數(shù)據(jù)庫。
            
            如果在實際開發(fā)工作中,需要重新設計數(shù)據(jù)表結(jié)構(gòu),那么只需要在.hbm文件中做相應的修改,然后執(zhí)行“Synchronize and Overwrite”的操作,插件會重新生成存根文件,我們只需要修改程序邏輯就可以了,非常方便。有了這樣的功能插件,我們可以極大的從配置文件的編寫、查錯中解脫出來,從而提高我們的工作效率。
          posted on 2005-11-02 15:18 Sung 閱讀(247) 評論(0)  編輯  收藏 所屬分類: Eclipse
          主站蜘蛛池模板: 崇信县| 普安县| 惠东县| 商丘市| 工布江达县| 南雄市| 莒南县| 河南省| 林甸县| 土默特右旗| 抚顺市| 高要市| 保德县| 昌江| 屯昌县| 永嘉县| 连平县| 石楼县| 海口市| 离岛区| 闽清县| 田林县| 屏边| 石楼县| 景德镇市| 武鸣县| 沙坪坝区| 富平县| 乌兰县| 宁晋县| 馆陶县| 彩票| 东乡| 木里| 桂林市| 南城县| 扎兰屯市| 阳原县| 堆龙德庆县| 从江县| 乐陵市|