首页 > 语言 > JavaScript > 正文

Hibernate 入门教程(纯Eclipse版)

2024-05-06 16:24:25
字体:
来源:转载
供稿:网友

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();

}

}

运行即可.效果就是往数据库中插入了一条记录.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选