<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 24  文章 - 6  trackbacks - 0
    <2005年3月>
    272812345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    隨筆分類(23)

    積分與排名

    • 積分 - 13760
    • 排名 - 2082

    最新評論

    利用Eclipse開發Hibernate應用程序


    bromon原創 請尊重版權

      Eclipse是目前非常流行的開發平臺,開放擴展的架構讓很多程序員找到了自己個性化的工作環境,Hibernate也是目前牛叉得不得了的框架,至少在EJB 3大行其道之前,它是我們在考慮OR映射時非常好的選擇。本文主要介紹如何利用Hibernate Syn插件在Eclipse 3.0.1中快速的開發Hibernate應用程序,提高我們的工作效率。關于Hibernate框架的細節,本文不做過多的討論,請參考相關資料,推薦《Hibernate in action》一書。

      首先需要安裝這個插件,Eclipse 3.0.1為我們提供了更加方便的插件管理方式,選擇菜單“幫助—軟件更新—查找并安裝”(本人的Eclipse使用了語言抱漢化,請英文界面用戶自行對照),選擇“搜索要安裝的新功能部件”,操作界面如下:



      選擇“新建遠程站點”,填寫名稱“Hibernate plugin”,下面的URL中填入:http://www.binamics.com/hibernatesync
    如下圖:



      然后在“安裝”界面中選中我們剛添加的“Hibernate plugin”,一路Next,Eclipse就可以自己下載完成安裝,然后Eclipse自動重啟動一次就完成了。

      下面演示一個最簡單的單表操作,可以讓我們很快熟悉開發過程。我們選擇Mysql數據庫來做這個應用,首先建立一個數據表,名為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的所有lib文件,以及mysql的jdbc驅動文件。下面我們需要在項目中加入一個Hibernate的配置文件,在src目錄下選擇“新建—其他—hibernate—hibernate configuration file”,如下圖:



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



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

      “完成”之后系統會自己生成一個名為“hibernate.cfg.xml”的文件,里面包含了基本的配置信息,如果需要高級配置,可以手動添加。

      下面我們要生成映射文件,首先新建一個包“org.bromon.zizz.pojo”,在這個包下選擇“新建—其他—hibernate—hibernate mapping file”,在彈出的界面中點擊“刷新”,講會列出庫中所有的數據表,選中我們要使用的“user_info”表,以及我們要生成的pojo文件所在的包:org.bromon.zizz.pojo。如下圖:



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



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

      然后我們需要在Hibernate的配置文件中添加對UserInfo的相關信息,在UserInfo.hbm上選擇“Synchronizer—Add Mapping Reference”。現在我們可以開始編寫自己的程序邏輯了,代碼可以寫在org.bromon.zizz.pojo.dao. UserInfoDAO中,這個類的代碼不會被插件修改。我們首先創建一條新的記錄,在該類中加入一個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();
           }

    }

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



      要讓這個程序正常運行,還需要對配置文件hibernate.cfg.xml作一些修改。值得注意的是,請不要在該插件以外的環境中修改配置文件(比如使用DreamWeaver之類的工具編輯文件),否則會造成系統與資源不同步的錯誤,這可能是插件的一個bug。使用Eclipse的“文本編輯器”打開該文件,其中有如下的內容:
    <property name="hibernate.transaction.factory_class">
    net.sf.hibernate.transaction.JTATransactionFactory
    </property>
    <property name="jta.UserTransaction">
    java:comp/UserTransaction
    </property>
      由于在我們的例子中,并沒有使用JTA來控制事務,所以需要將上面的內容注釋掉,程序才能正常運行。

      OK,Run一下,可以看到數據已經被保存到數據庫。

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

    原文發表于《開發高手》04年12期
    posted on 2005-03-28 14:01 Sometimes Java 閱讀(331) 評論(0)  編輯  收藏 所屬分類: Tech Flow
    主站蜘蛛池模板: 亚洲中文字幕无码av永久| 极品美女一级毛片免费| 成年人免费视频观看| 一边摸一边爽一边叫床免费视频| 亚洲成a人片77777kkkk| 无码日韩人妻av一区免费| 一级毛片免费毛片毛片| 亚洲精彩视频在线观看| 免费在线黄色网址| 最近2019免费中文字幕视频三| 亚洲爆乳成av人在线视菜奈实| 亚洲成AV人片在线观看无码| 性感美女视频免费网站午夜 | 高清永久免费观看| 亚洲精品在线播放| 亚洲视频人成在线播放| 国产精品成人免费福利| 久久av免费天堂小草播放| 亚洲人成网站色在线观看| 国产亚洲av片在线观看播放| 成人性生交视频免费观看| 久久美女网站免费| 美女尿口扒开图片免费| 亚洲日本香蕉视频观看视频| 自拍偷自拍亚洲精品被多人伦好爽 | 黄色三级三级免费看| 亚洲一级毛片免观看| 久久久久亚洲精品天堂久久久久久 | 久久综合九九亚洲一区| 免费久久精品国产片香蕉| 国产成人免费在线| 久久香蕉国产线看免费| 十八禁的黄污污免费网站| 亚洲日产乱码一二三区别| 亚洲精品视频免费看| 亚洲精品无码mv在线观看网站| 国产一级一片免费播放i| 青青青国产在线观看免费网站| 免费观看男人吊女人视频| 国产免费内射又粗又爽密桃视频| 国产精品亚洲а∨天堂2021|