Eclipse是目前非常流行的开发平台开放扩展的架构让很多程序员找到了自己个性化的工作环境Hibernate也是目前牛叉得不得了的框架至少在EJB 大行其道之前它是我们在考虑OR映射时非常好的选择本文主要介绍如何利用Hibernate Syn插件在Eclipse 中快速的开发Hibernate应用程序提高我们的工作效率关于Hibernate框架的细节本文不做过多的讨论请参考相关资料推荐《Hibernate in action》一书
首先需要安装这个插件Eclipse 为我们提供了更加方便的插件管理方式选择菜单帮助?软件更新?查找并安装(本人的Eclipse使用了语言抱汉化请英文界面用户自行对照)选择搜索要安装的新功能部件操作界面如下
选择新建远程站点填写名称Hibernate plugin下面的URL中填入
如下图
然后在安装界面中选中我们刚添加的Hibernate plugin一路NextEclipse就可以自己下载完成安装然后Eclipse自动重启动一次就完成了
下面演示一个最简单的单表操作可以让我们很快熟悉开发过程我们选择Mysql数据库来做这个应用首先建立一个数据表名为user_info包含idnamepassword三个字段建表语句如下
# Host: localhost
# Database: test
# Table: user_info
#
CREATE TABLE `user_info` (
`id` int() NOT NULL auto_increment
`name` varchar() NOT NULL default
`password` varchar() NOT NULL default
PRIMARY KEY (`id`)
);
然后新建一个普通的Java项目新建?项目?Java项目注意加入Hibernate的所有lib文件以及mysql的jdbc驱动文件下面我们需要在项目中加入一个Hibernate的配置文件在src目录下选择新建?其他?hibernate?hibernate configuration file如下图
在弹出的界面中你需要指定要使用的数据库以及连接数据库所需要的信息我们对应的选择了数据库为mysql并配置了数据库的URL和管理员帐号如下
在上图中我们还可以指定从JNDI数据源中获得连接可以点击Datasource标签进行配置
完成之后系统会自己生成一个名为hibernatecfgxml的文件里面包含了基本的配置信息如果需要高级配置可以手动添加
下面我们要生成映射文件首先新建一个包orgbromonzizzpojo在这个包下选择新建?其他?hibernate?hibernate mapping file在弹出的界面中点击刷新讲会列出库中所有的数据表选中我们要使用的user_info表以及我们要生成的pojo文件所在的包orgbromonzizzpojo如下图
在上述界面的Properties标签中可以配置hbm的其他选项包括文件扩展名聚合列名ID生成规则等完成后系统会自动生成一个名为UserInfohbm的文件我们可以通过这个文件生成相关的存根类在UserInfohbm文件上选择Hibernate Synchronizer?Synchronize files
该操作将生成三个包八个类文件里面封装了Hibernate的操作细节让我们可以专心面对业务逻辑的开发仔细阅读这些文件可以提高你对Hibernate的认识增长应用技巧
然后我们需要在Hibernate的配置文件中添加对UserInfo的相关信息在UserInfohbm上选择Synchronizer?Add Mapping Reference现在我们可以开始编写自己的程序逻辑了代码可以写在orgbromonzizzpojodao UserInfoDAO中这个类的代码不会被插件修改我们首先创建一条新的记录在该类中加入一个main方法
public static void main(String args[])
{
try
{
_RootDAOinitialize();
UserInfoDAO uid=new UserInfoDAO();
orgbromonzizzpojoUserInfo ui=new orgbromonzizzpojoUserInfo();
uisetName(bromon);
uisetPassword();
uidsave(ui);
}catch(Exception e)
{
eprintStackTrace();
}
}
可以看出插件已经把session操作和事务操作都封装起来了我们的代码工作得到了极大的简化而且我们可以利用插件自带的Hibernate editor来编辑hbm文件非常方便我们需要把ID的生成方式改为identity
要让这个程序正常运行还需要对配置文件hibernatecfgxml作一些修改值得注意的是请不要在该插件以外的环境中修改配置文件(比如使用DreamWeaver之类的工具编辑文件)否则会造成系统与资源不同步的错误这可能是插件的一个bug使用Eclipse的文本编辑器打开该文件其中有如下的内容
<property name=hibernatetransactionfactory_class>
netsfhibernatetransactionJTATransactionFactory
</property>
<property name=jtaUserTransaction>
java:compUserTransaction
</property>
由于在我们的例子中并没有使用JTA来控制事务所以需要将上面的内容注释掉程序才能正常运行
OKRun一下可以看到数据已经被保存到数据库
如果在实际开发工作中需要重新设计数据表结构那么只需要在hbm文件中做相应的修改然后执行Synchronize and Overwrite的操作插件会重新生成存根文件我们只需要修改程序逻辑就可以了非常方便有了这样的功能插件我们可以极大的从配置文件的编写查错中解脱出来从而提高我们的工作效率