千家信息网

MyEclipse下Spring、Hibernate、Struts如何结合

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章给大家分享的是有关MyEclipse下Spring、Hibernate、Struts如何结合的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。数据库准备:数据库名称:A
千家信息网最后更新 2025年01月21日MyEclipse下Spring、Hibernate、Struts如何结合

这篇文章给大家分享的是有关MyEclipse下Spring、Hibernate、Struts如何结合的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

数据库准备:
数据库名称:AT_SMS
表名称:admin
字段如下:
sid bigint 从1开始自动增加,步长为1,单独做表的主键name varchar(50)
password varchar(50)

开发软件准备:Eclipse 3.1
MyEclipse Enterprise Workbench v4.1.1 GA
JDK1.4.2
Spring1.2[MyEclipse自带的]
Hibernate3.0[MyEclipse自带的]

步骤:
1、设定自己的WorkSpace[D:Eclipse3.1MyWorkspace];

2、建立普通Java工程[不是MyEclipse Web工程]MyProject[D:Eclipse3.1MyWorkspaceMyProject;

2A、配置数据库连接备用。东东在Window->Open Perspective->My Eclipse Database Explore下。在左边空白框点右键选择New,弹出框后填写Profile name:MyTestDB;驱动点Configure database driver去配置,其它的看着填,不想看到所以数据库就在第二步选择Display the selected schemas,点按钮Add时会自动连接数据库显示所有的数据,选择你想看到的,在这我们选择AT_SMS,点finish完成了。

3、添加Spring相关东西[点击菜单MyEclipse->Add SPring Capabilities...][注意:把光标停在工程根目录才能添加,不然是灰灰的];弹出窗口默认选中Spring1.2 Core包,把Spring1.2 ORM/DAO/Hibernate3选中,把Spring1.2 AOP,Spring1.2 Testing都选中[省得测试时候遇到找不到jar再去导入],next,创建一个src目录存放配置文件,finish。

4、添加Hibernate相关东西,注意根Spring关联起来,数据库连接选择之前创建的MyTestDB即可,Dialect默认是Sysbase,我用Sql Server,所以要改过来;Hibernate的bean ID设成跟Spring的一样,结果配置文件提示ID不唯一,哈哈,那就清除Hiebernate相关的东西先,这还有些麻烦,首先要切换到MyEclipse J2EE Development[如果没有这个可能是你的工作区没有这种工程,去创建一个MyEclipseJ2EE工程],接着把工程视图从PackageExplorer切换到Navigator,删除文件名带Hibernate字样的文件,打开.project文件,删除里头关于Hibernate的一个buildCommand,和一个nature.Ok了,可以重新添加Hibernate相关的东西.[注意:SessionFactory就是Spring用来关联Hibernate的那Bean的ID我填SessionFactory,填写数据库参数时的那个BeanID就是数据源名称,我填dataSource]

5、接下来产生Hibernate映射,将视图切换到MyEclipse Database Explorer,点右键打开连接,选择你要产生Java代码的表,我们在这选择admin,弹出窗口发现会默认带出一些参数,由于这个DB连接不是属于单个工程的是个全局的东东,默认参数可能不是你想要的,不管那么多你选择Java src folder到你当前工程的src目录,这就与你的工程关联起来了,参数也跟着变了,Java package设为com.kama.hibernate,选中产生Spring DAO;其它默认,表的主键产生要设置一些,选中表名,在ID Generator选择native;就这样了。

6、让Spring管理数据库事务,在配置文件applicationContext.xml中添加内容:










PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">


baseTransactionProxy



*DAO

7、事务中,必须是接口调用,具体原因请看其它资料,现在我们增加接口:AdoInterface,在其中定义方法:public void save(Object transientInstance);[用Object做参数类型是为了让所有DAO类共用这个接口];

8、AdminDAO中增加实现接口AdoInterface,修改其save方法的声明,public void save(Object transientInstance)

9、测试方法一,写如下代码来测试:
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
AdoInterface dao = (AdoInterface) ctx.getBean("AdminDAO");

System.out.println(dao.toString());
Admin admin = new Admin();
admin.setName("Kama");
admin.setPassword("123456");
dao.save(admin);
System.out.println("--测试完毕--");
  看到插入的记录了吧!

10、测试方法二:在工程属性的JAVA Builder path->Libraries里头设置导入D:MyEclipseeclipsepluginscom.genuitec.eclipse.springframework_4.1.1data1.2libspring-mock.jar
产生测试类继承org.springframework.test.AbstractTransactionalSpringContextTests;修改:
protected String[] getConfigLocations() {
return new String[]
{ "/applicationContext.xml" };
}
增加:
private AdoInterface adminDAO;
public void setAdminDAO(AdoInterface adminDAO)
{
this.adminDAO = adminDAO;
}

public void testSave()
{
this.setComplete();//想将数据插入数据库就保留这个,不想插入数据库,去掉这句Junit测试会自动回滚。
Admin admin = new Admin();
admin.setName("KamaSupport");
admin.setPassword("123456");
this.adminDAO.save(admin);
}
以Junit形式运行测试程序。大功告成!

附录A:applicationContext.xml




net.sourceforge.jtds.jdbc.Driver


jdbc:jtds:sqlserver://127.0.0.1:3344/AT_SMS;SelectMethod=cursor


sa


123456













PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED



class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">


baseTransactionProxy



*DAO









org.hibernate.dialect.SQLServerDialect




com/kama/hibernate/Admin.hbm.xml








附录B:log4j.properties
log4j.rootLogger=INFO,default
log4j.logger.org=ERROR
log4j.logger.com.comp=ERROR
log4j.logger.net.sf.hibernate=ERROR
log4j.logger.net.sf.hibernate.SQL=ERROR
log4j.logger.net.sf.hibernate.type=ERROR
log4j.logger.net.sf.ehcache=ERROR
log4j.logger.org.springframework=ERROR

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=DEBUG
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}:[%p] [%t] %r %l %m%n

log4j.appender.default=org.apache.log4j.RollingFileAppender
log4j.appender.default.Threshold=DEBUG
log4j.appender.default.File=kama.log
log4j.appender.default.Append=true
log4j.appender.default.MaxFileSize=1000KB
log4j.appender.default.MaxBackupIndex=3
log4j.appender.default.layout=org.apache.log4j.PatternLayout
log4j.appender.default.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}:[%p] [%t] %r %l %m%n

[@more@]1、在struts-config.xml中增加:



2、修改Struts的Action映射:

attribute="addAdminForm"
input="/form/addAdmin.jsp"
name="addAdminForm"
path="/addAdmin"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
name="success"
path="/form/success.jsp"
redirect="true" />

就是将type改成Spring的代理类了,原来的Action类要到Spring的配置文件里头去配置。

Struts配置文件修改完毕!

3、在Spring配置文件中配置path="/addAdmin"对应的bean





class:Struts的ActionBean

property:由Spring产生的DAO,这个属性要在com.kama.struts.action.AddAdminAction中定义,并且要定义Setter方法。

4、在Action中使用DAO:

4.1:定义DAO属性:

private AdoInterface dao;

4.2:定义Setter,Getter方法:

public AdoInterface getDao()
{
return dao;
}

public void setDao(AdoInterface dao)
{
this.dao = dao;
}

4.3:调用DAO:

public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
AddAdminForm addAdminForm = (AddAdminForm) form;
Admin id = new Admin();
id.setName(addAdminForm.getName());
id.setPassword(addAdminForm.getPassword());
dao.save(id);
return mapping.findForward("success");
}

OK,完成了!

注意:部署的时候将spring-web.jar包部署到lib目录下,不然刚才在Struts配置文件里头增加的那几个Class找不到会出现莫名的错误!

感谢各位的阅读!关于"MyEclipse下Spring、Hibernate、Struts如何结合"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

数据 配置 工程 数据库 文件 选择 测试 方法 参数 东西 接口 内容 名称 就是 属性 目录 关联 切换 事务 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 政法智能化网络安全体系不够健全 网络安全人员配备责任制度 班会网络安全情景剧 常州网络服务器机柜高性价比之选 服务器区域独立防护例子 电子信息工程计算机网络技术运用 惠普服务器电源键闪绿 软件开发年终总结范文 服务器免备案破解 教育系统网络安全培训班 乡镇网络安全宣传活动小结 手机签名软件开发 湛江信息软件开发方案 优点家庭服务器怎么管理 掌握数据库的优势 vb实验指导软件开发 网络安全儿童画 教程 网络安全方案设计与入侵检测 威海电信dns服务器 数据库表修改字符集 软件开发工程师考核标准 网络安全法授课教案 分布式数据库查询相关概念 安徽服务器回收有哪些公司 本地服务器部署邮箱 山航软件开发社招面试内容 阿里云内存数据库sql 车辆管理系统数据库页面运营结果 四川省网络安全条例 云南单机版外贸软件开发
0