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();
}
}
运行即可.效果就是往数据库中插入了一条记录.
新闻热点
疑难解答
图片精选