Struts+Spring+Hibernate整合的简单实例

2025-05-26

Struts+Spring+Hibernate整合的简单实例

通过Struts+Spring+Hibernate来实现一个简单的增删改查操作。我们分三层处理这个应用:一、表现层,我们使用Struts实现,负责处理用户请求,提供一个控制其代理。不适合在这层出现JDBC以及业务逻辑。二、持久层,使用Hibernate来查询相关信息、保存更新和删除数据库信息。业务逻辑同样不适合出现在该层。三、业务层,使用Spring来连接Bean,实现业务逻辑和业务验证,预留接口,管理业务层对象之间的依赖。这里程序通过edit,index和input.jsp三个页面实现对数据的增删改查操作。

整合SSH的步骤为:

1.新建WEB项目

MyEclipse下使用快捷键Alt+Shift+N新建一个WebProject项目,命名为SSH_example,选择JavaEE5.0。

2.增加Hibernate、Spring开发能力

导入Hibernate开发能力,注意最后一项时不要创建sessionFactory类。Spring导入Cord、AOP、persistenceCore、persistenceJDBC和WebLibraries五个库。最后创建SessionFactory类,使用Spring容器进行统一管理。

3.增加POJO类文件和Hibernate映射文件

打开DataBaseExplorer视图,将表test生成POJO类和映射文件。这些文件放在com.sshexample.model中。

4.编写DAO接口和实现类

DAO接口放在包com.sshexample.dao中,代码为:

[java]viewplaincopy

packagecom.sshexample.dao;

importjava.util.List;

importcom.sshexample.model.Test;

publicinterfaceTestDao{

//保存

publicvoidsave(Testt);

//删除

publicvoiddelete(Integeri);

//获得所有对象

publicListgetAll();

Struts+Spring+Hibernate整合的简单实例

//获得一个对象

publicTestgetTest(Integerid);

}

其实现类代码实现该接口的同时继承自HibernateDaoSupport超类,放置在包com.sshexample.dao.hibernate中,实现了增删改查的具体操作,代码如下:

[java]viewplaincopy

packagecom.sshexample.dao.hibernate;

importjava.util.List;

importorg.springframework.orm.hibernate3.support.HibernateDaoSupport; importcom.sshexample.dao.TestDao;

importcom.sshexample.model.Test;

publicclassTestDaoHibernateextendsHibernateDaoSupportimplementsTestDao{

publicvoiddelete(Integerid){

this.getHibernateTemplate().delete(getTest(id));

}

publicListgetAll(){

returnthis.getHibernateTemplate().find("fromTest");

}

publicTestgetTest(Integerid){

return(Test)this.getHibernateTemplate().get(Test.class,id);

}

publicvoidsave(Testt){

this.getHibernateTemplate().saveOrUpdate(t);

}

Struts+Spring+Hibernate整合的简单实例

}

5.编写服务层接口和实现类

在包com.sshexample.service中,新建服务层接口TestManager,定义增删改查操作接口,这里的增删改查和DAO接口操作类似,但服务对象则是Web层,可能会有一些启发方法。而DAO中,只声明了数据库基本操作。在

com.sshexample.service.impl中定义TestManagerImpl实现类,实现了上文中的TestManager接口。

接口TestManager代码为:

[java]viewplaincopy

packagecom.sshexample.service;

importjava.util.List;

importcom.sshexample.model.Test;

publicinterfaceTestManager{

//保存

publicvoidsave(Testt);

//删除

publicvoiddelete(Stringid);

//获得所有对象

publicListgetAll();

//获得一个对象

publicTestgetTest(Stringid);

}

实现类TestManagerImpl代码为:

[java]viewplaincopy

packagecom.sshexample.service.impl;

Struts+Spring+Hibernate整合的简单实例

importjava.util.List;

importcom.sshexample.dao.TestDao;

importcom.sshexample.model.Test;

importcom.sshexample.service.TestManager;

publicclassTestManagerImplimplementsTestManager{

privateTestDaotestDao;

publicTestDaogetTestDao(){

returntestDao;

}

publicvoidsetTestDao(TestDaotestDao){

this.testDao=testDao;

}

publicvoiddelete(Stringid){

testDao.delete(newInteger(id));

}

publicListgetAll(){

returntestDao.getAll();

}

publicTestgetTest(Stringid){

returntestDao.getTest(newInteger(id));

}

publicvoidsave(Testt){

testDao.save(t);

}

}

6.修改Spring配置文件

在Spring配置文件applicationContext.xml文件的源码格式下,右击选Spring->newDataSource,新建一个数据源Bean。设值为之前的

SQLServer2005Conn,如果提示出错,可能需要附加SpringPersistenceJDBC库。再新建一个Bean,ID为testDao,class为上文中实现了DAO操作的具体类testDaoHibernate。在其中添加一个属性sessionFactory作为注入的入口。注意保持name栏和具体实现类testDaoHibernate中得方法setTestDao方法名的后半段一致,以方便注入。

Struts+Spring+Hibernate整合的简单实例

7.增加Struts开发能力

附加struts开饭能力,选择Struts1.3版本,将基础包修改为

com.sshexample.web。

8.新建FormBean

修改Struts-config.xml文件,新建一个From,ActionandJSP项目,用例名为test,表格类型为动态表格,添加一个属性为name。下一步进行Action类配置,超类选择分发器动作dispatchAction。去掉输入源前面的form。

9.编辑Action类TestAction.java实现了操作。

Struts+Spring+Hibernate整合的简单实例

[java]viewplaincopy

packagecom.sshexample.web.action;

importjava.util.List;

Struts+Spring+Hibernate整合的简单实例.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:7000考研英语的周计划

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219