站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Eclipse 专题用eclipse+Hibernate Synchronizer(plugin)开发例子(原创)

用eclipse+Hibernate Synchronizer(plugin)开发例子(原创)

摘要: 用eclipse+Hibernate Synchronizer(plugin)开发例子(原创)

1. 开发环境准备

Eclipse3.0.1

下载:http://www.eclipse.org/

Eclipse Plugin:Hibernate Synchronizer

下载:http://sourceforge.net/project/showfiles.php?group_id=99370

Hibernate-2.1.8

下载:http://internap.dl.sourceforge.net/sourceforge/hibernate/hibernate-2.1.8.zip

MyS QL 4.1

下载:http://www.mysql.com

2.演示一个简单例子

2.1在mysql数据库中的test数据库下创建表内容表Content,脚本如下:

<table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellspacing="0" cellpadding="0" border="1"><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" valign="top" width="568">

CREATE TABLE Content (

FID int(11) NOT NULL auto_increment,

FTitle varchar(100) NOT NULL default '',

FContent Text ,

PRIMARY KEY (FID)

);

</td></tr></table>

2.2检测Hibernate插件是否安装成功,进入菜单”window”下的”Preferences”,就有如下图所示的:

<formulas></formulas>

2.3用eclipse创建一个JAVA项目,如下所示:

选“Next>”一直到完成。

有一点要注意的是,创建完项目后,还要将Hibernate库及mysql驱动加入到项目的Libraries中。

2.4加入Hibernate配置文件“hibernate.cfg.xml”

选择该项目,点右键,“New”à “Other”进入如下界面,

选择“Hibernate Configuration File”à “Next”

选择数据库类型、Database URL、Username及Password,OK, 文件“hibernate.cfg.xml”系统自动生成。

2.5加入“*.hbm”配置文件

同样是,选择该项目,点右键,“New”à “Other”进入,不过这次要选择的是“Hibernate Mapping File”,点“Next”进入如下界面

注意,如果数据库有密码,则要先要输入密码再点“Refresh”按钮,数据中的表就会显示在Tables框中。选择一个表,如content后,点“Finish”按钮。

2.6根据content.hbm生成相关的JAVA代码,选择Content.hbm右键,操作如下界面:

2.7接一来简单地增加几行代码就可以了,进入系统生成的包DAO中,如例子中的“com.hibernate.example.dao”,打开文件ContentDAO.java,代码修改如下:

<table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellspacing="0" cellpadding="0" border="1"><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" valign="top" width="568">
0: /*
 1:  * 创建日期 2004-12-10
 2:  * @author Oscar Lao
 3:  * CopyRight 2005 S.W.S
 4:  */
 5: 
 6: package com.hibernate.example.dao;
 7: 
 8: import org.apache.log4j.Logger;
 9: 
10: import com.hibernate.example.Content;
11: import com.hibernate.example.base.BaseContentDAO;
12: 
13: /**
14:  * @author Oscar Lao
15:  * QQ:63065068
16:  * Email:e-silver@163.com
17:  * ClassDesc:Hibernate Example
18:  **/
19: public class ContentDAO extends BaseContentDAO {
20:     private static final Logger logger = Logger.getLogger(ContentDAO.class);
21: 
22:     public static void main(String[] args){
23:         if (logger.isDebugEnabled()) {
24:             logger.debug("程序正在运行...");
25:         }
26: 
27:         try {
28:             _RootDAO.initialize();
29:             
30:             ContentDAO cond = new ContentDAO();            
31:             Content cont = new Content();
32:             for (int i = 1; i < 100; i++) {
33:                 cont.setFid(new Integer(i));
34:                 cont.setFTitle("Title"+i);
35:                 cont.setFContent("Content"+i);
36:                 cond.save(cont);
37:            }
38:         } catch (Exception e) {
39:             logger.error("运行时出现异常...", e);
40:         }
41: 
42:         if (logger.isDebugEnabled()) {
43:             logger.debug("运行完毕。");
44:         }
45:     }
46: }
</td></tr></table>

3.欣赏成果

如果所有的配置正确,ContentDAO类应该可以运行了,运行后,程序会向表Content插入100条记录。祝你好运!!

4.在我测试时出现如下错误,现在也贴出来,希望对大家有所帮助:

4.1如果运行时出现如下异常

Could not find UserTransaction in JNDI javax.naming.NoInitialContextException:…

解决:把配置文件“hibernate.cfg.xml”中的

net.sf.hibernate.transaction.JTATransactionFactory

java:comp/UserTransaction

两行设置JTA控制事务的属性注释掉就可以了,因为程序里还未使用JTA控制事务。

4.2 如果运行时出现如下异常

Error parsing XML: /hibernate.cfg.xml(33) The content of element type "session-factory" is incomplete, it must match "(property*,mapping+,(class-cache|collection-cache|jcs-class-cache|jcs-collection-cache)*)".

解决:在配置文件“hibernate.cfg.xml”中的之间加

第一次写关于Hibernate的文章,如有不对的地方,请批评指正。

最后,祝大家成功!!^_^



↑返回目录
前一篇: Eclipse 使用技巧
后一篇: [引用] Eclipse Forms Programming Guide