??xml version="1.0" encoding="utf-8" standalone="yes"?>
好了Q现在具体来说说q个单的例子?/span>
首先Q需要具备以下条Ӟ
1Q?/span>eclipse 3.2或者其它版本。此文所采用的是3.2英文版?/span>
2Q?/span>Mysql 数据库以及驱动程?/span>.jar文g?/span>
3Q?/span>hibernate Synchronizer插g。可?/span>sourcefourge上下载?/span>
4Q?/span>hibernate文g包,里面包括所有的jar文g?/span>
W二Q在MYSQL中徏立一个测试数据库Q名?/span>test。ƈ建立一个数据表person:
use test;
create table person(
ID int auto_increment primary key,
Name char(10),
Sex char(1),
Address char(20));
W三Q在eclipse中新Z?/span>java project。命名ؓhibernateTest。ƈ导入JRE文g.W四Q右键单dl徏立好?/span>JAVA工程Q将hibernate?/span>mysql?/span>.jar文g导入到工E中。具体操作:右键单击工程->Build path->Configure build path->add external JARS 导入hibernate?/span>mysql的相?/span>jar文g。至此我们已l搭建好了开发环境,下一步开始进行实际开发?/span>
W五Q右键单dE,选择new-->other-->hibernate-->hibernate configure file,在弹出窗口中填入相应内容Q?/span>eclipse会自动生成hibernate?/span>configure 文g。在弹出的窗口中也可以选择数据源配|方式,Ҏ(gu)只要在窗口在connection中选择database便可。有兴趣的可以自p试看?/span>
注意Q请保证configure文g是处于工E的根目录下面,否则在编译的时候会因ؓ找不到該文g而出错?/span>
W六Q在工程中新Z个包Q名字随你喜Ƣ,主要是用来存放一?/span>JAVA文g。右键单dE?/span>hibernateTestànewàpackageà写入包名Q这里我所用的包名?/span>src。完成以后,单击所建立的包Q?/span>newàotheràhibernateàhibernate mapping file,出现配置H口Q如果前面步骤正的话,会看到如图的画面,点击tables对应?/span>refresh按键Q将会出C所建数据库中的表,此时选择我们所建立?/span>person表,点击finishQ会看到src目录中出C一?/span>person.hbm.xml文gQ利?/span>hibernate Synchronizer Editer打开q个文gQ方法:右键单击該文?/span>àopenwithàhibernate Synchronizer Editer。查看其?/span>ID?/span><generator class>属性,认該属性配|ؓidentity,自动增长型?/span>配置完成?/span>
l过上一步后Q因为我们采?/span>hibernate SynchronizerQ?/span>eclipse会ؓ我们自动生成一?/span>person.java文g和一?/span>BasePerson.java文gQ?/span>BasePerson.java位于一个独立包中,主要是提供对数据库表person的相应字D늚get?/span>setҎ(gu)Q它实现Serializable接口。ƈ重写了其中的equals(),hashCode()?/span>toString()Ҏ(gu)。我理解为实际上是一?/span>POJOQ没有什么其它特D的。?/span>person.java只是l承?/span>BasePerson.javaQ这样做的好处就是实现程序更好的装?/span>
上面的步骤都完成以后Q我们需要将person.hbm.xml文g映射?/span>hibernate.cfg.xml文g中去Q这h能程序找?/span>personq个cR方法:依次执行1?/span>2。(1Q右键单?/span>person.hbm.xmlàhibernate Synchronizerà Synchronizefiles 。(2Q?/span>右键单击person.hbm.xmlàhibernate SynchronizeràAdd mapping reference?/span>
l过以上所有操作,我们完成了所有需要配|的文gQ现在来~写一个测试文Ӟ试我们的上q配|是否成功。新Z?/span>JAVA文g。放?/span>src 目录下,在下输入以内容:
package src;
import java.util.Date;
import java.util.Iterator;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Hello {
/**
*
*
*/
public Hello(){
}
public static void main(String[] args) throws Exception{
Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session session = sessionFactory.openSession();
Person person = new Person();
person.setName("hejian22");
person.setSex("F");
person.setAddress("http://test.com.cn");
session.save(person);
session.flush();
session.close();
}
}
完成后,q行該文Ӟ会出现错误,l过多番查找资料Q才发现hibernate Synchronizer插g有一?/span>BUGQ当我们通过add mapping file?/span>hibernate.cfg.xm.d映射文g的时候,它会自动?/span>hibernate.cfg.xm.的标题部份去掉。这时只要把标题部䆾写上便可以成功执行?/span>
在这里我只写Z向数据库中添加记录这一功能,其它功能可以p己去试验。都是最基础的东西,q得l箋努力?/span>
ȝQ经q这ơ教训,自己意识C个问题,我们不能L从网上找到的代码q接拿去运行調试,而应该弄清楚它的基本l构Q因为可能其中存在许多问题,要想把一D代码真正变成自qQ还是要l过一定的探烦?/span>