Hibernate是一個不依賴其他平臺的輕量級的中間件,現在到處充斥著通過各種工具使用Hibernate進行開發的教程,如MyEclipse,Ant,Maven等等,但是去掉這些工具,事實上,Hibernate仍然可以使用的。下面的講解就是使用這種方法,讓大家認識Hibernate。需要的軟件有:Eclipse+MySQL+Hibernate。
1.準備jar包
首先作為準備,我們去Hibernate官方網站下載Hibernatejar包。本教程用的是hibernate-distribution-3.3.2.GA-dist,解壓,我們使用的主要有hibernate3.jar和lib/required里的包,其他的包在需要的時候再進行導入即可。需要特別注意的是,我在這些包里沒有找到slf4j-nop-1.5.2.jar這個包,需要自己去下載,不然在使用本教程運行時會拋出找不到一些類的異常。下載的地址可以在baidu或者google里搜索。另外需要數據庫驅動程序,本教程使用的是MySQL數據庫,使用的jar包為mysql-connector-java-5.1.0-bin.jar,你可根據自己的mysql版本等信息選擇合適的jar包.
2.建立工程
為了方便,我們使用Eclipse作為開發平臺,注意,這里沒有使用其他的插件,從這個意義上來說,還是比較純粹的,呵呵。本貼原創,轉載請注明來自historycreator.com
2.0在MySQL中建立數據庫,名為event.
建一表,名為events,包含字段有EVENT_ID,title,EVENT_DATE,類型分別是整型自動增長主鍵,varchar,timestamp.
2.1打開eclipse,建立一個JavaProject。導入相關類,包括hibernate3.jar和/lib/required里的所有jar包,加上slf4j-nop-1.5.2.jar和mysql-connector-java-5.1.0-bin.jar.
2.2新建一個實體類Event
packagecom.historycreator.hibernate;
importjava.util.Date;
publicclassEvent{
privateLongid;
privateStringtitle;
privateDatedate;
publicEvent(){}
publicLonggetId(){
returnid;
}
privatevoidsetId(Longid){
this.id=id;
}
publicDategetDate(){
returndate;
}
publicvoidsetDate(Datedate){
this.date=date;
}
publicStringgetTitle(){
returntitle;
}
publicvoidsetTitle(Stringtitle){
this.title=title;
}
}
2.3在com.historycreator.hibernate下建立配置文件Event.hbm.xml,內容如下
"-//Hibernate/HibernateMappingDTD3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
2.4在src文件夾,也就是在com同級目錄下,建立配置文件hibernate.cfg.xml,內容如下:
"-//Hibernate/HibernateConfigurationDTD3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
org.gjt.mm.mysql.Driver
jdbc:mysql://localhost/event?useUnicode=true&characterEncoding=gbk
root
test
1
org.hibernate.dialect.MySQL5Dialect
thread
org.hibernate.cache.NoCacheProvider
true
update
2.5建工廠類HibernateUtil
packagecom.historycreator.hibernate;
importorg.hibernate.SessionFactory;
importorg.hibernate.cfg.Configuration;
publicclassHibernateUtil{
privatestaticfinalSessionFactorysessionFactory=buildSessionFactory();
privatestaticSessionFactorybuildSessionFactory(){
try{
//CreatetheSessionFactoryfromhibernate.cfg.xml
returnnewConfiguration().configure().buildSessionFactory();
}
catch(Throwableex){
//Makesureyoulogtheexception,asitmightbeswallowed
System.err.println("InitialSessionFactorycreationfailed."+ex);
thrownewExceptionInInitializerError(ex);
}
}
publicstaticSessionFactorygetSessionFactory(){
returnsessionFactory;
}
}
2.6建類EventManager
packagecom.historycreator.hibernate;
importjava.util.Date;
importorg.hibernate.classic.Session;
publicclassEventManager{
publicstaticvoidmain(String[]args){
EventManagermgr=newEventManager();
mgr.createAndStoreEvent("MyEvent",newDate());
HibernateUtil.getSessionFactory().close();
}
privatevoidcreateAndStoreEvent(Stringtitle,DatetheDate){
Sessionsession=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
EventtheEvent=newEvent();
theEvent.setTitle(title);
theEvent.setDate(theDate);
session.save(theEvent);
session.getTransaction().commit();
}
}
運行即可.效果就是往數據庫中插入了一條記錄.
|
新聞熱點
疑難解答
圖片精選