CSDN -
文檔中心 -
Java 閱讀:0 評論: 0
參與評論標題 利用Eclipse開(kāi)發(fā)Hibernate應用程序 選擇自
xujianhua815926 的 Blog
關(guān)鍵字 利用Eclipse開(kāi)發(fā)Hibernate應用程序
出處
Eclipse是目前非常流行的開(kāi)發(fā)平臺,開(kāi)放擴展的架構讓很多程序員找到了自己個(gè)性化的工作環(huán)境,Hibernate也是目前牛叉得不得了的框架,至少在EJB 3大行其道之前,它是我們在考慮OR映射時(shí)非常好的選擇。本文主要介紹如何利用Hibernate Syn插件在Eclipse 3.0.1中快速的開(kāi)發(fā)Hibernate應用程序,提高我們的工作效率。關(guān)于Hibernate框架的細節,本文不做過(guò)多的討論,請參考相關(guān)資料,推薦《Hibernate in action》一書(shū)。
首先需要安裝這個(gè)插件,Eclipse 3.0.1為我們提供了更加方便的插件管理方式,選擇菜單“幫助?軟件更新?查找并安裝”(本人的Eclipse使用了語(yǔ)言抱漢化,請英文界面用戶(hù)自行對照),選擇“搜索要安裝的新功能部件”,操作界面如下:
選擇“新建遠程站點(diǎn)”,填寫(xiě)名稱(chēng)“Hibernate plugin”,下面的URL中填入:http://www.binamics.com/hibernatesync
如下圖:
然后在“安裝”界面中選中我們剛添加的“Hibernate plugin”,一路Next,Eclipse就可以自己下載完成安裝,然后Eclipse自動(dòng)重啟動(dòng)一次就完成了。
下面演示一個(gè)最簡(jiǎn)單的單表操作,可以讓我們很快熟悉開(kāi)發(fā)過(guò)程。我們選擇Mysql數據庫來(lái)做這個(gè)應用,首先建立一個(gè)數據表,名為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項目:“新建?項目?Java項目”,注意加入Hibernate的所有lib文件,以及mysql的jdbc驅動(dòng)文件。下面我們需要在項目中加入一個(gè)Hibernate的配置文件,在src目錄下選擇“新建?其他?hibernate?hibernate configuration file”,如下圖:
在彈出的界面中,你需要指定要使用的數據庫,以及連接數據庫所需要的信息,我們對應的選擇了數據庫為mysql,并配置了數據庫的URL和管理員賬號,如下:
在上圖中,我們還可以指定從JNDI數據源中獲得連接,可以點(diǎn)擊“Datasource“標簽進(jìn)行配置。
“完成”之后系統會(huì )自己生成一個(gè)名為“hibernate.cfg.xml”的文件,里面包含了基本的配置信息,如果需要高級配置,可以手動(dòng)添加。
下面我們要生成映射文件,首先新建一個(gè)包“org.bromon.zizz.pojo”,在這個(gè)包下選擇“新建?其他?hibernate?hibernate mapping file”,在彈出的界面中點(diǎn)擊“刷新”,講會(huì )列出庫中所有的數據表,選中我們要使用的“user_info”表,以及我們要生成的pojo文件所在的包:org.bromon.zizz.pojo。如下圖:
在上述界面的“Properties”標簽中可以配置hbm的其他選項,包括文件擴展名,聚合列名,ID生成規則等。完成后,系統會(huì )自動(dòng)生成一個(gè)名為“UserInfo.hbm”的文件,我們可以通過(guò)這個(gè)文件生成相關(guān)的存根類(lèi)。在UserInfo.hbm文件上選擇“Hibernate Synchronizer?Synchronize files”:
該操作將生成三個(gè)包八個(gè)類(lèi)文件,里面封裝了Hibernate的操作細節,讓我們可以專(zhuān)心面對業(yè)務(wù)邏輯的開(kāi)發(fā),仔細閱讀這些文件可以提高你對Hibernate的認識,增長(cháng)應用技巧。
然后我們需要在Hibernate的配置文件中添加對UserInfo的相關(guān)信息,在UserInfo.hbm上選擇“Synchronizer?Add Mapping Reference”?,F在我們可以開(kāi)始編寫(xiě)自己的程序邏輯了,代碼可以寫(xiě)在org.bromon.zizz.pojo.dao. UserInfoDAO中,這個(gè)類(lèi)的代碼不會(huì )被插件修改。我們首先創(chuàng )建一條新的記錄,在該類(lèi)中加入一個(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ù)操作都封裝起來(lái)了,我們的代碼工作得到了極大的簡(jiǎn)化。而且我們可以利用插件自帶的Hibernate editor來(lái)編輯hbm文件,非常方便,我們需要把ID的生成方式改為“identity”:
要讓這個(gè)程序正常運行,還需要對配置文件hibernate.cfg.xml作一些修改。值得注意的是,請不要在該插件以外的環(huán)境中修改配置文件(比如使用DreamWeaver之類(lèi)的工具編輯文件),否則會(huì )造成系統與資源不同步的錯誤,這可能是插件的一個(gè)bug。使用Eclipse的“文本編輯器”打開(kāi)該文件,其中有如下的內容:
<property name="hibernate.transaction.factory_class">
net.sf.hibernate.transaction.JTATransactionFactory
</property>
<property name="jta.UserTransaction">
java:compUserTransaction
</property>
由于在我們的例子中,并沒(méi)有使用JTA來(lái)控制事務(wù),所以需要將上面的內容注釋掉,程序才能正常運行。
OK,Run一下,可以看到數據已經(jīng)被保存到數據庫。
如果在實(shí)際開(kāi)發(fā)工作中,需要重新設計數據表結構,那么只需要在.hbm文件中做相應的修改,然后執行“Synchronize and Overwrite”的操作,插件會(huì )重新生成存根文件,我們只需要修改程序邏輯就可以了,非常方便。有了這樣的功能插件,我們可以極大的從配置文件的編寫(xiě)、查錯中解脫出來(lái),從而提高我們的工作效率。
作者Blog:
http://blog.csdn.net/xujianhua815926/