当前页面: 开发资料首页 → JSP 专题 → 利用Eclipse开发Hibernate应用程序
摘要: 利用Eclipse开发Hibernate应用程序
Eclipse是目前非常流行的开发平台,开放扩展的架构让很多程序员找到了自己个性化的工作环境,Hibernate也是目前牛叉得不得了的框架,至少在EJB 3大行其道之前,它是我们在考虑OR映射时非常好的选择。本文主要介绍如何利用Hibernate Syn插件在Eclipse 3.0.1中快速的开发Hibernate应用程序,提高我们的工作效率。关于Hibernate框架的细节,本文不做过多的讨论,请参考相关资料,推荐《Hibernate in action》一书。
首先需要安装这个插件,Eclipse 3.0.1为我们提供了更加方便的插件管理方式,选择菜单“帮助—软件更新—查找并安装”(本人的Eclipse使用了语言抱汉化,请英文界面用户自行对照),选择“搜索要安装的新功能部件”,操作界面如下:
选择“新建远程站点”,填写名称“Hibernate plugin”,下面的URL中填入:http://www.binamics.com/hibernatesync
如下图:
然后在“安装”界面中选中我们刚添加的“Hibernate plugin”,一路Next,Eclipse就可以自己下载完成安装,然后Eclipse自动重启动一次就完成了。
下面演示一个最简单的单表操作,可以让我们很快熟悉开发过程。我们选择Mysql数据库来做这个应用,首先建立一个数据表,名为user_info,包含id、name、password三个字段,建表语句如下:
# Host: localhost
# Database: test
# Table: 'user_info'
#
CREATE TABLE `user_info` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(100) NOT NULL default '',
`password` varchar(100) NOT NULL default '',
PRIMARY KEY (`id`)
);
在上图中,我们还可以指定从JNDI数据源中获得连接,可以点击“Datasource“标签进行配置。
“完成”之后系统会自己生成一个名为“hibernate.cfg.xml”的文件,里面包含了基本的配置信息,如果需要高级配置,可以手动添加。
下面我们要生成映射文件,首先新建一个包“org.bromon.zizz.pojo”,在这个包下选择“新建—其他—hibernate—hibernate mapping file”,在弹出的界面中点击“刷新”,讲会列出库中所有的数据表,选中我们要使用的“user_info”表,以及我们要生成的pojo文件所在的包:org.bromon.zizz.pojo。如下图:
在上述界面的“Properties”标签中可以配置hbm的其他选项,包括文件扩展名,聚合列名,ID生成规则等。完成后,系统会自动生成一个名为“UserInfo.hbm”的文件,我们可以通过这个文件生成相关的存根类。在UserInfo.hbm文件上选择“Hibernate Synchronizer—Synchronize files”:
该操作将生成三个包八个类文件,里面封装了Hibernate的操作细节,让我们可以专心面对业务逻辑的开发,仔细阅读这些文件可以提高你对Hibernate的认识,增长应用技巧。
然后我们需要在Hibernate的配置文件中添加对UserInfo的相关信息,在UserInfo.hbm上选择“Synchronizer—Add Mapping Reference”。现在我们可以开始编写自己的程序逻辑了,代码可以写在org.bromon.zizz.pojo.dao. UserInfoDAO中,这个类的代码不会被插件修改。我们首先创建一条新的记录,在该类中加入一个main方法:
public static void main(String args[])
{
try
{
_RootDAO.initialize();
UserInfoDAO uid=new UserInfoDAO();
org.bromon.zizz.pojo.UserInfo ui=new org.bromon.zizz.pojo.UserInfo();
ui.setName("bromon");
ui.setPassword("123");
uid.save(ui);
}catch(Exception e)
{
e.printStackTrace();
}
}
<property name="hibernate.transaction.factory_class">
net.sf.hibernate.transaction.JTATransactionFactory
</property>
<property name="jta.UserTransaction">
java:comp/UserTransaction
</property>