在MyEclipse快速搭建Hibernate应用

我们所要建的应用非常简单,只是利用hibernate3.0对一张表进行操作。
软件环境:
1.Eclipse3.1.2;
2.MyEclipse4.1.0;
3.MySqlServer5.0;
4.MySqlJavaConnectorJ5.0.4;
5.hibernate3.0CoreLibraries;
6.hibernate3.0AdvancedLibraries;
参考书籍及文档:
<<深入浅出Hibernate>>夏昕,唐勇,曹晓刚
MyEclipseHelpContent

整个应用的创建依以下步骤完成:
(1)新建一个名为hibernatetest的mysqlschema;

(2)创建一张名为User的表格,其语句如下:
CREATETABLE`hibernatetest`.`User`(
`id`INTEGERUNSIGNEDNOTNULLAUTO_INCREMENT,
`name`VARCHAR(45)NOTNULL,
`sex`CHARNOTNULL,
`age`TINYINTUNSIGNEDNOTNULL,
PRIMARYKEY(`id`)
)
ENGINE=InnoDB;

(3)打开MyEclipse的DBBrowser视图,在右击选项菜单(ContextMenu)上选择New...,弹出Database

Profile对话框,用于新建一个Profile,填入以下信息:
<3.1>ProfileName:localhost_mysql_profile;
<3.2>Driver:打开Configuredatabasedriver链接,配置jdbc驱动,我们只需加入MySql

ConnectorJ的JDBC驱动即可;
<3.3>URL:jdbc:mysql://127.0.0.1:3306/hibernatetest;
<3.4>UserName:用户名;
<3.5>Password:密码;
创建完profile后,尝试一下连接至数据库,成功即可;

(4)在Eclipse中新建一个名为HibernateSample的Java项目;
<4.1>创建一个名为config的目录,用于放置hibernate.cfg.xml;
<4.2>创建一个名为mappings的目录,用于放置映射文件;

(5)在HibernateSample项目的右击选项菜单中,选择MyEclipse->AddHibernateCapabilities...这

样会弹出一个HibernateSupportforMyEclipse的对话框:
<5.1>第一步是选择要添加到工程的包,我们把Hibernate3.0的Core及Advanced包都勾上;
<5.2>第二步是否创建hibernate.cfg.xml,我们把configurationfolder设定为src/config;
<5.3>第三步是指定数据库连接细节(specifydatabaseconnectiondetails),我们只需名为

localhost_mysql_profile即可,因为我们之前已经进行了设置;
<5.4>第四步问你是否创建SessionFactory,这个SessionFactory其实是Hibernate提供的一个用于

管理Session的类,它可以确保在每个独立的线程中Session是唯一的,我们创建名为

cn.com.test.hibernatesample.factory.HibernateSessionFactory的类;
通过上述的四步,现在的工程里面已经拥有了hibernate所需的包及配置文件。


(6)在src目录下创建一个名为log4j.properties的文件,内容如下:
###directlogmessagestostdout###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p%c{1}:%L-%m%n

log4j.rootLogger=warn,stdout
log4j.logger.org.hibernate=error
因为hibernate是通过log4j进行日志管理的,所以加上这个会比较好,不加会在运行时出错。

(7)创建cn.com.test.hibernatesample.model.User类,篇幅所限,大致如下
-------------------------------------------------------------------------
packagecn.com.test.hibernatesample.model;
publicclassUser{

privateIntegerid;
privateStringname;
privatecharsex;
privatebyteage;

//后面是一堆的setter,getter,用于set及get各个属性

}
------------------------------------------------------------------------------

(8)在工程的mappings(在第4步创建的目录)目录下创建一个名为User.hbm.xml,内容如下:
<?xmlversion="1.0"?>
<!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<classname="cn.com.test.hibernatesample.model.User"table="USER">

<idname="id"column="id"type="integer">
<generatorclass="increment"/>
</id>
<propertyname="name"column="name"type="string"/>
<propertyname="sex"column="sex"type="char"/>
<propertyname="age"column="age"type="byte"/>
</class>
</hibernate-mapping>

(9)在HibernateSample项目的右击选项菜单中,选择New->JUnitTestCase...,弹出新建JUnit

TestCase的对话框:
<9.1>package上输入:cn.com.test.hibernatesample.test;
<9.2>type上输入UserTest;
<9.3>在whichmethodstubswhouldyouliketocreate中勾上setUp(),tearDown();
整个UserTest类的代码如下:


---------------------------------------------------------------------------------
packagecn.com.test.hibernatesample.test;

importorg.hibernate.HibernateException;
importorg.hibernate.Session;
importorg.hibernate.Transaction;

importcn.com.test.hibernatesample.factory.HibernateSessionFactory;
importcn.com.test.hibernatesample.model.User;

importjunit.framework.Assert;
importjunit.framework.TestCase;

publicclassUserTestextendsTestCase{

//hibenate的session对象
privateSessionsession=null;

protectedvoidsetUp()throwsException{
super.setUp();
session=HibernateSessionFactory.currentSession();
}

publicvoidtestUserInsert(){
Transactiontran=null;
try{
tran=session.beginTransaction();
Useruser=newUser();
user.setName("suhaoyuan");
user.setSex('M');
user.setAge(Byte.parseByte("27"));
session.save(user);
tran.commit();
Assert.assertEquals(.getId().intValue()>0,true);
}
catch(HibernateExceptionex){
ex.printStackTrace();
Assert.fail(ex.getMessage());
if(tran!=null){
try{
tran.rollback();
}
catch(HibernateExceptiontranEx){
tranEx.printStackTrace();
}
}
}
}

protectedvoidtearDown()throwsException{
super.tearDown();
HibernateSessionFactory.closeSession();
}

}
----------------------------------------------------------------------------


(10)运行刚创建的UserTest测试用例即完成该应用;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值