Project->Properies->Java Build Path->Libraries->Add External JARs...,選擇Hibernate根目錄下的hibernate3.jar,添加到項(xiàng)目中。
接著,要將Hibernate下的lib文件夾下的所有文件都作為一個(gè)User Library添加到項(xiàng)目中,否則,如果僅僅添加hibernate3.jar,編譯可以通過(guò),運(yùn)行卻會(huì)拋出ClassNotDef的異常,因?yàn)閔ibernate3.jar依賴于Hibernate下的lib文件夾下的文件。
2)我們的應(yīng)用的后臺(tái)數(shù)據(jù)庫(kù)使用的是Oracle,所以首先要在例子項(xiàng)目中引入含有Oracle jdbc driver的包,classes12.jar。該jar文件位于oracle安裝目錄的jdbc\lib目錄下。
在Eclipse中,Project->Properies->Java Build Path->Libraries->Add External JARs...,選擇classes12.jar,將其添加到項(xiàng)目中。
(3)生成hibernate.cfg.xml文件。
通常Hibernate的配置文件和.hbm.xml文件都可以自動(dòng)生成,這種自動(dòng)生成的工具很多,我使用的是HibernateSynchronizer,它可以作為一個(gè)插件添加到Eclipse中。當(dāng)HibernateSynchronizer插件正確加載后,我們可以向當(dāng)前項(xiàng)目中添加Hibernate配置文件:File->New->Other->Hibernate->Hibernate Configuration File,出現(xiàn)如下界面:
注意,Driver Class要選擇針對(duì)Oracle的oracle.jdbc.driver.OracleDriver,而且Database URL的格式也要正確,如:
最好將hibernate.cfg.xml文件存放于項(xiàng)目的根目錄下。
4)生成.hbm.xml文件。File->New->Other->Hibernate->Hibernate Mapping File,出現(xiàn)如下界面:
在填寫完P(guān)assword后,點(diǎn)擊Refresh按鈕,就會(huì)在Tables中列出所有可以訪問(wèn)的數(shù)據(jù)庫(kù)表,然后選中要為其生成.hbm.xml文件的表,點(diǎn)擊Finish,即會(huì)生成對(duì)應(yīng)的.hbm.xml文件,比如我上面選擇的是Mobileuser表,就會(huì)生成Mobileuser.hbm.xml文件。
(5)從.hbm.xml文件自動(dòng)生成實(shí)體類。
在Package Explorer中選中Mobileuser.hbm.xml文件,右鍵->Hibernate Synchronizer->Synchronize Files ,即可生成對(duì)應(yīng)的實(shí)體類和DAO類。如果你僅僅想要實(shí)體類,那么可以在Project->Properies->Hibernate Synchronizer->Data Access Objects ,將“I would like to have DAOs created for me”的鉤選項(xiàng)去掉即可。
(6)在hibernate.cfg.xml文件中添加對(duì)應(yīng)的mapping resource。
在Package Explorer中選中Mobileuser.hbm.xml文件,右鍵->Hibernate Synchronizer->Add Mapping Reference,即會(huì)在
hibernate.cfg.xml中自動(dòng)生成如下配置:
(7)修改自動(dòng)生成的hibernate.cfg.xml文件。需要在hibernate.cfg.xml文件的首部添加:
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
比較繁瑣的是,每次自動(dòng)修改hibernate.cfg.xml文件后,都要重新添加這個(gè)xml片斷。
萬(wàn)事具備,現(xiàn)在可以寫個(gè)測(cè)試來(lái)檢驗(yàn)一下了:
public static void main(String[] args)
{
Configuration cfg = new Configuration().configure() ;
SessionFactory sFactory = cfg.buildSessionFactory() ;
Session session = sFactory.openSession() ;
Transaction tx = session.beginTransaction();
Mobileuser user = (Mobileuser)session.load(Mobileuser.class , new Integer(2)) ;
String age = user.getMobilenumber() ;
System.out.println(age) ;
tx.commit();
session.close() ;
}