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

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

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

    Sung in Blog

               一些技術(shù)文章 & 一些生活雜碎
    Eclipse是目前非常流行的開發(fā)平臺(tái),開放擴(kuò)展的架構(gòu)讓很多程序員找到了自己個(gè)性化的工作環(huán)境,Hibernate也是目前牛叉得不得了的框架,至少在EJB 3大行其道之前,它是我們?cè)诳紤]OR映射時(shí)非常好的選擇。本文主要介紹如何利用Hibernate Syn插件在Eclipse 3.0.1中快速的開發(fā)Hibernate應(yīng)用程序,提高我們的工作效率。關(guān)于Hibernate框架的細(xì)節(jié),本文不做過多的討論,請(qǐng)參考相關(guān)資料,推薦《Hibernate in action》一書。
      
      首先需要安裝這個(gè)插件,Eclipse 3.0.1為我們提供了更加方便的插件管理方式,選擇菜單“幫助?軟件更新?查找并安裝”(本人的Eclipse使用了語(yǔ)言抱漢化,請(qǐng)英文界面用戶自行對(duì)照),選擇“搜索要安裝的新功能部件”,操作界面如下:
       
      選擇“新建遠(yuǎn)程站點(diǎn)”,填寫名稱“Hibernate plugin”,下面的URL中填入:http://www.binamics.com/hibernatesync
      如下圖:
       
      然后在“安裝”界面中選中我們剛添加的“Hibernate plugin”,一路Next,Eclipse就可以自己下載完成安裝,然后Eclipse自動(dòng)重啟動(dòng)一次就完成了。
      
      下面演示一個(gè)最簡(jiǎn)單的單表操作,可以讓我們很快熟悉開發(fā)過程。我們選擇Mysql數(shù)據(jù)庫(kù)來做這個(gè)應(yīng)用,首先建立一個(gè)數(shù)據(jù)表,名為user_info,包含id、name、password三個(gè)字段,建表語(yǔ)句如下:
      
      # 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`)
      );
      
      然后新建一個(gè)普通的Java項(xiàng)目:“新建?項(xiàng)目?Java項(xiàng)目”,注意加入Hibernate的所有l(wèi)ib文件,以及mysql的jdbc驅(qū)動(dòng)文件。下面我們需要在項(xiàng)目中加入一個(gè)Hibernate的配置文件,在src目錄下選擇“新建?其他?hibernate?hibernate configuration file”,如下圖:
       
      在彈出的界面中,你需要指定要使用的數(shù)據(jù)庫(kù),以及連接數(shù)據(jù)庫(kù)所需要的信息,我們對(duì)應(yīng)的選擇了數(shù)據(jù)庫(kù)為mysql,并配置了數(shù)據(jù)庫(kù)的URL和管理員帳號(hào),如下:
       
      在上圖中,我們還可以指定從JNDI數(shù)據(jù)源中獲得連接,可以點(diǎn)擊“Datasource“標(biāo)簽進(jìn)行配置。
      
      “完成”之后系統(tǒng)會(huì)自己生成一個(gè)名為“hibernate.cfg.xml”的文件,里面包含了基本的配置信息,如果需要高級(jí)配置,可以手動(dòng)添加。
      
      下面我們要生成映射文件,首先新建一個(gè)包“org.bromon.zizz.pojo”,在這個(gè)包下選擇“新建?其他?hibernate?hibernate mapping file”,在彈出的界面中點(diǎn)擊“刷新”,講會(huì)列出庫(kù)中所有的數(shù)據(jù)表,選中我們要使用的“user_info”表,以及我們要生成的pojo文件所在的包:org.bromon.zizz.pojo。如下圖:
       
      在上述界面的“Properties”標(biāo)簽中可以配置hbm的其他選項(xiàng),包括文件擴(kuò)展名,聚合列名,ID生成規(guī)則等。完成后,系統(tǒng)會(huì)自動(dòng)生成一個(gè)名為“UserInfo.hbm”的文件,我們可以通過這個(gè)文件生成相關(guān)的存根類。在UserInfo.hbm文件上選擇“Hibernate Synchronizer?Synchronize files”:
       
      該操作將生成三個(gè)包八個(gè)類文件,里面封裝了Hibernate的操作細(xì)節(jié),讓我們可以專心面對(duì)業(yè)務(wù)邏輯的開發(fā),仔細(xì)閱讀這些文件可以提高你對(duì)Hibernate的認(rèn)識(shí),增長(zhǎng)應(yīng)用技巧。
      
      然后我們需要在Hibernate的配置文件中添加對(duì)UserInfo的相關(guān)信息,在UserInfo.hbm上選擇“Synchronizer?Add Mapping Reference”。現(xiàn)在我們可以開始編寫自己的程序邏輯了,代碼可以寫在org.bromon.zizz.pojo.dao. UserInfoDAO中,這個(gè)類的代碼不會(huì)被插件修改。我們首先創(chuàng)建一條新的記錄,在該類中加入一個(gè)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操作和事務(wù)操作都封裝起來了,我們的代碼工作得到了極大的簡(jiǎn)化。而且我們可以利用插件自帶的Hibernate editor來編輯hbm文件,非常方便,我們需要把ID的生成方式改為“identity”:
      
      要讓這個(gè)程序正常運(yùn)行,還需要對(duì)配置文件hibernate.cfg.xml作一些修改。值得注意的是,請(qǐng)不要在該插件以外的環(huán)境中修改配置文件(比如使用DreamWeaver之類的工具編輯文件),否則會(huì)造成系統(tǒng)與資源不同步的錯(cuò)誤,這可能是插件的一個(gè)bug。使用Eclipse的“文本編輯器”打開該文件,其中有如下的內(nèi)容:
      
      <property name="hibernate.transaction.factory_class">
      net.sf.hibernate.transaction.JTATransactionFactory
      </property>
      <property name="jta.UserTransaction">
      java:compUserTransaction
      </property>
      
      由于在我們的例子中,并沒有使用JTA來控制事務(wù),所以需要將上面的內(nèi)容注釋掉,程序才能正常運(yùn)行。
      
      OK,Run一下,可以看到數(shù)據(jù)已經(jīng)被保存到數(shù)據(jù)庫(kù)。
      
      如果在實(shí)際開發(fā)工作中,需要重新設(shè)計(jì)數(shù)據(jù)表結(jié)構(gòu),那么只需要在.hbm文件中做相應(yīng)的修改,然后執(zhí)行“Synchronize and Overwrite”的操作,插件會(huì)重新生成存根文件,我們只需要修改程序邏輯就可以了,非常方便。有了這樣的功能插件,我們可以極大的從配置文件的編寫、查錯(cuò)中解脫出來,從而提高我們的工作效率。
    posted on 2005-11-02 15:18 Sung 閱讀(245) 評(píng)論(0)  編輯  收藏 所屬分類: Eclipse
    主站蜘蛛池模板: 亚洲自偷自偷在线制服| 亚洲an天堂an在线观看| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 中文字幕在线免费观看| 亚洲香蕉久久一区二区| 啊灬啊灬别停啊灬用力啊免费看| 男女一边桶一边摸一边脱视频免费| 亚洲人成在线观看| 在线免费观看一级毛片| a级毛片在线免费看| 国产亚洲中文日本不卡二区| 亚洲av中文无码| 亚洲网站在线免费观看| 处破女第一次亚洲18分钟| 久久亚洲精品视频| 影音先锋在线免费观看| 91免费福利视频| 亚洲国产成人99精品激情在线| 亚洲真人日本在线| 我们的2018在线观看免费高清| 国产特黄一级一片免费| 亚洲成A人片在线播放器| 亚洲精品白浆高清久久久久久| 天天摸夜夜摸成人免费视频 | 国产免费人人看大香伊| 99久久国产免费-99久久国产免费| 国产精品久久久久久亚洲影视| 亚洲AV本道一区二区三区四区| 免费国产高清视频| 97热久久免费频精品99| 你是我的城池营垒免费看| 亚洲av无码无线在线观看| 亚洲欧洲日产韩国在线| 亚洲韩国精品无码一区二区三区| 亚洲宅男永久在线| 亚洲成人一区二区| 巨胸喷奶水视频www网免费| 精品香蕉在线观看免费| 日本高清免费观看| 中文字幕在线视频免费观看| 香蕉视频亚洲一级|