终于把hibernate调通了,一个简单的入门例子

 

  花了小半天,终于把一个简单的hibernate程序搞通了,成功的向数据库中添加了数据。现在冷静下来想一下,其实也挺简单的,但在具体的过程中自己出了不少的错误,究其原因有二:其一是自己从网上找了一些程序,但没有理解其根本意思就开始照着上面的代码编写,结果编写出来的大多不能正常运行;其二是由于公司只提供eclipse开发工具,没有myeclipse插件,所以开发hibernate, struts框架的时候就很不方便。我采用hibernate Synchronizer插件来进行开发。因为在有许多同行都推荐它,但具体怎么样,我现在还不好说,毕竟刚开始用这个插件。若想了解hibernate Synchronizer的特性,网上google一下,多的是。

好了,现在具体来说说这个简单的例子。

首先,需要具备以下条件;

1eclipse 3.2或者其它版本。此文所采用的是3.2英文版。

2Mysql 数据库以及驱动程序.jar文件。

3hibernate Synchronizer插件。可从sourcefourge上下载。

4hibernate文件包,里面包括所有的jar文件。

第二:在MYSQL中建立一个测试数据库,名为test。并建立一个数据表person:

use test;

create table person(

       ID int auto_increment primary key,

       Name char(10),

       Sex char(1),

       Address char(20));

第三,在eclipse中新建一个java project。命名为hibernateTest。并导入JRE文件.
 

第四,右键单击已经建立好的JAVA工程,将hibernatemysql.jar文件导入到工程中。具体操作:右键单击工程->Build path->Configure build path->add external JARS 导入hibernatemysql的相关jar文件。至此我们已经搭建好了开发环境,下一步开始进行实际开发。

第五,右键单击工程,选择new-->other-->hibernate-->hibernate configure file,在弹出窗口中填入相应内容,eclipse将会自动生成hibernateconfigure 文件。在弹出的窗口中也可以选择数据源配置方式,方法只要在窗口在connection项中选择database便可。有兴趣的可以自己试试看。

注意:请保证configure文件是处于工程的根目录下面,否则在编译的时候会因为找不到該文件而出错。

第六,在工程中新建一个包,名字随你喜欢,主要是用来存放一些JAVA文件。右键单击工程hibernateTestànewàpackageà写入包名,这里我所用的包名是src。完成以后,单击所建立的包,newàotheràhibernateàhibernate mapping file,出现配置窗口,如果前面步骤正确的话,将会看到如图的画面,点击tables对应的refresh按键,将会出现你所建数据库中的表,此时选择我们所建立的person表,点击finish,会看到src目录中出现了一个person.hbm.xml文件,利用hibernate Synchronizer Editer打开这个文件,方法:右键单击該文件àopenwithàhibernate Synchronizer Editer。查看其中ID<generator class>属性,确认該属性配置为identity,自动增长型。配置完成。

经过上一步后,因为我们采用hibernate Synchronizereclipse会为我们自动生成一个person.java文件和一个BasePerson.java文件,BasePerson.java位于一个独立包中,主要是提供对数据库表person的相应字段的getset方法,它实现Serializable接口。并重写了其中的equals(),hashCode()toString()方法。我理解为实际上就是一个POJO,没有什么其它特殊的。而person.java只是继承了BasePerson.java,这样做的好处就是实现程序更好的封装。

上面的步骤都完成以后,我们需要将person.hbm.xml文件映射到hibernate.cfg.xml文件中去,这样才能程序找到person这个类。方法:依次执行12。(1)右键单击person.hbm.xmlàhibernate Synchronizerà Synchronizefiles 。(2右键单击person.hbm.xmlàhibernate SynchronizeràAdd mapping reference

经过以上所有操作,我们完成了所有需要配置的文件,现在来编写一个测试文件,测试我们的上述配置是否成功。新建一个JAVA文件。放在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();

}

}

完成后,运行該文件,会出现错误,经过多番查找资料,才发现hibernate Synchronizer插件有一个BUG,当我们通过add mapping filehibernate.cfg.xm.添加映射文件的时候,它会自动将hibernate.cfg.xm.的标题部份去掉。这时只要把标题部份写上便可以成功执行。

在这里我只写出了向数据库中添加记录这一项功能,其它功能可以由自己去试验。都是最基础的东西,还得继续努力。

总结:经过这次教训,自己意识到一个问题,我们不能总把从网上找到的代码就直接拿去运行調试,而应该弄清楚它的基本结构,因为可能其中存在许多问题,要想把一段代码真正变成自己的,还是要经过一定的探索。


 

posted on 2007-09-29 19:17 ^小^齐^ 阅读(819) 评论(1)  编辑  收藏 所属分类: Hibernate

评论

# re: 终于把hibernate调通了,一个简单的入门例子 2007-09-29 20:34 flyingdancing

不错~~~~~~  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2007年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

常用链接

留言簿(3)

随笔分类

随笔档案

相册

我喜欢去的地方

搜索

最新评论

阅读排行榜

评论排行榜