hibernate是一个开放源代码的o/r mapping (对象关系映射框架),它对jdbc进行了轻量级的对象封装,使java程序员可以使用对象编程思维来操纵数据库。
hibernate synchronizer是一个eclipse插件,可以自动生成*.hbm文件、持久化类和daos。了解hibernate synchronizer插件的详细信息可以访问:http://www.binamics.com/hibernatesync/ 。
一、hibernate synchronizer的功能包括:
l 通过一个向导配置并生成hibernate configuration file;
l 通过一个向导同步生成数据库表的*.hbm文件;
l 通过*.hbm文件同步生成hibernate持久化类和daos;
l 提供hibernate synchronizer editor编辑*.hbm文件;
l 用一种叫做velocity的语言定制个性化的代码和资源生成模板(通常没有必要);
二、使用hibernate synchronizer插件的步骤:
1、 通过eclipse的软件更新功能安装插件(eclipse 3.x的插件更新网址:: http://www.binamics.com/hibernatesync);
2、 配置插件的属性。可以分别在工作台级别和项目级别配置。通常使用默认值。可配置的项目包括:
l 修改并保存hbm时是否自动更新值对象(value object);
l 是否自动生成daos或值对象(value object);
l 配置生成daos和值对象(value object)时的包名。
3、 通过插件生成hibernate configuration file;
4、 通过插件生成*.hbm (hibernate mapping file)文件;
5、 必要时用插件提供的editor编辑*.hbm文件;
6、 通过插件把重新配置hibernate configuration file的mapping resource;
7、 通过*.hbm同步生成daos和值对象(value object);
三、浅析hibernate synchronizer插件生成的代码。
在这个例子中,使用hibernate synchronizer插件同步了数据库中的两个表:t_order和t_user。t_user和t_order是一对多的关系。
在默认设置的情况下,插件生成的包图如下:
base包中存放插件生成的五个抽象类,在hibernate synchronizer“再同步”时会覆盖base包中的类,因此用户不要把客户代码放在base中的类里。换句话说,任何时候不要修改这些类。
dao包中存放的三个类,分别继承自base包中相应的三个类。dao包中的三个类完全是空的实现,客户可以在这里插入自己的代码。采用这样的结构,就把客户代码从插件生成的代码中分离出来,即实现了客户对插件生成代码的定制,又不会在插件“再同步”时影响到客户代码。
在默认设置的情况下,插件生成的类图如下:
左边的六个类是daos,右边的四个类是持久类。
所有的daos继承自_baserootdao,这个抽象类封装了公共的hibernate操作方法。抽象类_rootdao直接继承自_baserootdao,客户可以在这里对_baserootdao进行定制,把公共级别的hibernate操作放在这里。_baserootdao下级的base…dao是持久类的dao,它仍然是抽象类,目的是让它的子类实现定制的方法。
所有的值对象(value object)都分为两个层次,抽象的基类(如basetorder、basetuser)和实现类(torder、tuser)。抽象层次包含hibernate synchronizer插件生成的持久类,实现层次可以包含客户的定制代码。
四、使用hibernate synchronizer插件生成的代码。
在自己的代码中使用hibernate synchronizer生成的代码非常简单。
_rootdao.initialize();
tuserdao dao = new userdao();
tuser user = dao.load("zhangyu");
user.setmail("e-zhangyu@vip.sina.com");
dao.update(user);
_rootdao.initialize()是必须的。hibernate synchronizer生成的持久对象是标准的hibernate持久对象,包含一组set和get方法。daos负责操作持久对象,包括对session和事务管理、load和释放对象、save或update、查询等功能。有了daos,客户代码十分简洁。
作者简介:
张昱,可以通过e-zhangyu@vip.sina.com 与作者取得联系。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!


