[学习笔记]快速开发Hibernate
2005-06-13
樊欢java及开源项目爱好者。
Email:heydaymail@hotmail.com
Blog:http://heyay.blogone.net
2005-6-13
引言
关于学习Hibernate的意义,咱不用多说。
下载并安装插件
Hibernate3
下载:Hibernate.sourceforge.net" />http://Hibernate.sourceforge.net
JBossIDE1.5M1
下载:http://sourceforge.net/projects/jboss/
HibernateSynchronizer3
下载:Hibernatesynch/" />http://sourceforge.net/projects/Hibernatesynch/
Mysql及JDBC开发包
下载:http://dev.mysql.com/downloads/
JBossIDE1.5M1基于Eclipse的IDE开发工具,你可以通过升级你的Eclipse插件进行升级,不过我升级了很多次都不成功,经常升级到一半就毫无动静,白白浪费了很多时间,所以推荐直接下载JBossIDE。
HibernateSynchronizerEclipse的Hibernate插件。可以生成Hibernate的配置文件和Java代码。不过是基于Hibernate2的。Hibernate2与Hibernate3的Classs的包由原来的net.sf移至org包内。所以HibernateSynchronizer生成的Java代码和配置文件会有错误。我通过对HibernateSynchronizer进行反编译,并进行修改,使之适应于Hibernate3,目前使用还未发现问题。要使用我修改后的版本,请与我通过Email(heydaymail@hotmail.com实在是找不到空间可放)联系。
第一个实例
一、前期准备
安装HibernateSynchronizer插件,并在JBossIDE透视图里配置好。
启动Mysql,建表Computer:
[table]
CREATETABLE`computer`(
`id`int(11)NOTNULLauto_increment,
`cpu`varchar(50)defaultNULL,
`mainboard`varchar(50)defaultNULL,
`displaycard`varchar(50)defaultNULL,
`harddisk`varchar(50)defaultNULL,
`display`varchar(50)defaultNULL,
`memory`varchar(50)defaultNULL,
`soundcard`varchar(50)defaultNULL,
`cdrom`varchar(50)defaultNULL,
`mouse`varchar(50)defaultNULL,
`keyboard`varchar(50)defaultNULL,
PRIMARYKEY(`id`)
);
[/table]
二、新建项目
启动JBossIDE,新建一个DemoHibernate项目,导入Hibernate及Mysql开发包。如图:
将Hiberante开发包里的log4j.properties放至项目根目录下。
三、Hibernate配置文件
1.通过JBossIDEHibernate插件,生成Hibernate.cfg.xml
[table]
Hibernate-configurationPUBLIC
"-//Hibernate/HibernateConfigurationDTD3.0//EN"
"http://Hibernate.sourceforge.net/Hibernate-configuration-3.0.dtd">
<Hibernate-configuration>
Hibernate.connection.username">root
Hibernate.dialect">
org.Hibernate.dialect.MySQLDialect
Hibernate.connection.url">
jdbc:mysql://localhost/Hibernate
Hibernate.connection.driver_class">
org.gjt.mm.mysql.Driver
Hibernate-configuration>
[/table]
2.通过HibernateSynchronizer生成Mapping文件
3.将Mapping文件加入Hiberante.cfg.xml文件
[table]
Hibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD//EN"
"http://Hibernate.sourceforge.net/Hibernate-mapping-3.0.dtd">
<Hibernate-mappingpackage="my.demo.Hibernate">
table="computer"
>
name="Id"
type="int"
column="id"
>
name="Cpu"
column="cpu"
type="string"
not-null="false"
length="50"
/>
name="Mainboard"
column="mainboard"
type="string"
not-null="false"
length="50"
/>
name="Displaycard"
column="displaycard"
type="string"
not-null="false"
length="50"
/>
name="Harddisk"
column="harddisk"
type="string"
not-null="false"
length="50"
/>
name="Display"
column="display"
type="string"
not-null="false"
length="50"
/>
name="Memory"
column="memory"
type="string"
not-null="false"
length="50"
/>
name="Soundcard"
column="soundcard"
type="string"
not-null="false"
length="50"
/>
name="Cdrom"
column="cdrom"
type="string"
not-null="false"
length="50"
/>
name="Mouse"
column="mouse"
type="string"
not-null="false"
length="50"
/>
name="Keyboard"
column="keyboard"
type="string"
not-null="false"
length="50"
/>
Hibernate-mapping>
[/table]
生成的Computer.hbm,中Id字段为自增,需要将generatorclass=”VM”参数改为increment
将Mapping文件加入到Hibernate.cfg.xml中
可以看到Hibernate.cfg.xml中增加一行
[table]
Hibernate-configurationPUBLIC
"-//Hibernate/HibernateConfigurationDTD3.0//EN"
"http://Hibernate.sourceforge.net/Hibernate-configuration-3.0.dtd">
<Hibernate-configuration>
Hibernate.connection.username">root
Hibernate.dialect">
org.Hibernate.dialect.MySQLDialect
Hibernate.connection.url">
jdbc:mysql://localhost/Hibernate
Hibernate.connection.driver_class">
org.gjt.mm.mysql.Driver
Hibernate-configuration>
[/table]
四、生成Java代码
通过HibernateSynchronizer生成HibernateJava代码。
生成的代码结构如图:
五、编写代码
[table]
packagemy.demo.Hibernate.Sample;
importorg.apache.log4j.PropertyConfigurator;
importorg.Hibernate.SessionFactory;
importorg.Hibernate.Session;
importorg.Hibernate.cfg.Configuration;
importmy.demo.Hibernate.Computer;
publicclassComputerCreate{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
PropertyConfigurator.configure("log4j.properties");
Configurationcfg=newConfiguration();
cfg.configure();
SessionFactorysf=cfg.buildSessionFactory();
Sessionsession=sf.openSession();
Computercomputer=newComputer();
computer.setCpu("on(E)2.4");
computer.setDisplay("LCD");
computer.setDisplaycard("intel");
computer.setHarddisk("60G");
computer.setMainboard("inter");
computer.setMemory("512M");
computer.setMemory("Agiller");
computer.setSoundcard("inter");
computer.setKeyboard("inter");
computer.setCdrom("cdrom");
session.save(computer);
session.flush();
try{
session.connection().commit();
session.close();
System.out.println("success!!!!");
}catch(Exceptione){
e.printStackTrace();
}
}
}
[/table]
总结
Hibernate实现O/RMapping,但配置文件编写非常麻烦,通过JBossIDE及HibernateSynchronizer可以快速的帮助我们构建代码,大大提高我们的工作效益。
关于作者
樊欢java爱好者,您可以通过heydaymail@hotmail.com与我联系。
Email:heydaymail@hotmail.com
Blog:http://heyay.blo
发表于 @ 2008年05月01日 06:32:32|评论(loading...)|编辑