`
ddsheng1128
  • 浏览: 23061 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

基于J2EE的SSH 整合应用及操作示例二(CRUD操作及配置)

 
阅读更多
基于J2EE的SSH
整合应用及操作示例二(CRUD操作及配置)
2009-10-08 09:25:22
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://gaochaojs.blog.51cto.com/812546/210131
CRUD
是指在做计算处理时的增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。
In computing, CRUD is an acronym for create, retrieve, update, and delete. It is used to refer to the basic functions of a database or persistence layer in a software system.
C reate new records
R etrieve existing records
U pdate existing records
D elete existing records.
在响应新增部门请求中,通过导入Struts 的配置文件(struts-config.xml) 来完成业务流程的部署。它把depAdd.jsp depAdd.do 连接起来。depAdd.jsp上产生客户请求,depAdd.do 则对请求产生响应、处理jsp页面上的数据。当点击depAdd.jsp 上的保存按钮
( <div style="float: right; padding: 10px 25px 0 0;"><div class="right_button"><a href="#" onclick="check();return false;"><bean:messagekey="go.add" /> </a></div>
</div>)
先检查页面数据的正确性,校验通过后将输入数据用Set方法存入到userinfoForm这个FormBean中。
function check(){var userName = document.userinfoForm.userName.value;var password = document.userinfoForm.password.value;var length = document.userinfoForm.password.value.length;var repassword = document.userinfoForm.repassword.value;var tel = document.userinfoForm.tel.value;var department = document.userinfoForm.department.value;if(userName==""){alert('部门管理员姓名不能为空!')return false;}

if(password==""){alert('密码不能为空!')return false;}if(length<6||length>10){alert('密码必须大于6个字符小于10个字符!')return false;}if(repassword==""){alert('重复密码不能为空!')return false;}if(password!=repassword){alert('密码输入不一致!')return false;}if(tel!=""){No = "0123456789()+-"for(i=0; i<tel.length; i++){var Checkstr = tel.charAt(i);if (No.indexOf(Checkstr)== -1){alert("联系电话格式不正确!");return false;}}}if(department==""){alert('部门管理员所属部门不能为空!')return false;}

else{document.userinfoForm.submit();}

}
然后根据struts-config.xml调用depAdd.do (这将在Spring配置文件中指定相应的Action) 进行业务处理。在depAdd.do中页面数据将从userinfoForm 中读取。depAdd.do 执行成功后将显示/ok.jsp页面。depAdd.do对应的Action (DepAddAction)Spring的配置文件(applicationContext.xml) 中指定。要把depAdd.doDepAddAction对应起来,首先要在struts-config.xml 中配置Delegating RequestProcessor。其次,需要在application Context.xml中定义名字为“/depAdd”的受管JavaBean。每次对DepAddAction请求时,Delegating Request Processor将充当代理。同时,DepAddAction 使用到受管Java Beansm Service。要使用UserinfoService,需要在DepAddAction中生成UserinfoServiceget()set()方法,并且application Context.xml 中对“/depAdd”进行Dep Add Action的依赖注入。因为DepAddAction 并没有直接去操作数据访问Userinfo DAO。而是通过调用业务逻辑层UserinfoService 中的方法来实现业务逻辑的。DepAddAction中部分代码如下:
String userName = userinfoForm.getUserName();String pwd = userinfoForm.getPassword();String rePwd = userinfoForm.getRepassword();String tel = userinfoForm.getTel();String dep = userinfoForm.getDepartment();

// 生成userinfo对象Userinfo userinfo = new Userinfo();

// 将从表单中获得的值赋给该对象userinfo.setUserName(userName);userinfo.setPassword(pwd);userinfo.setTel(tel);userinfo.setDepartment(dep);userinfo.setUserType("dep");// 所有新增用户类型一律为dep// 数据入库
userinfoService.save(userinfo);
如果depAdd.do要对应另一个Action,则只要修改applicationContext.xml 即可,这将有利于系统的更新。同样,如果另一个.do 要对应DepAddAction,也只要在applicationContext.xml中配置即可,这将有利于代码的重用。在本系统中,Hibernate Spring 共用一个配置文件applicationContext.xmlHibernate applicationContext.xml 中读取和数据库有关的信息。数据库信息包括数据库连接、与数据库结构相对应的映射文件。在新增部门请求中,涉及到的数据库表为userinfo表,它所对应的映射文件为Userinfo.hbm.xml。为了访问数据库表userinfo,只有Userinfo.hbm.xml映射文件是不够的,还需要数据访问类UserinfoDAO、数据类AbstractUserinfo,Userinfo。数据类Userinfo的实现较为简单,它只是Java对象与数据库表之间的对应,主要用于在各应用层间传递数据,在它的基础上要实现的就是数据访问类UserinfoDAO。系统在生成UserinfoDAO 的同时,也将UserinfoDAO作为JavaBean配置到applicationContext.xml 中。UserinfoDAO中是对userinfo 表进行保存、查询、删除或修改等基本数据操作,在applicationContext.xml 中需要userinfoService 进行UserinfoDAO 及其代理的依赖注入。这样做,使得当UserinfoDAO 变化时,只需修改applicationContext.xmluserinfoService实现新的注入,指向新的实现就可以了,由此解除了数据访问层和业务层的紧密耦合。数据访问类UserinfoDAO 继承于辅助类Hibernate-DaoSupport,借助于getHibernateTemplate() 获得对Hibernate资源的操作,极大的方便了Hibernate框架的使用。在UserinfoDAO中定义了对数据库表userinfo的操作函数。如下面代码,即是UserinfoService 中调用的saveData 方法。
public class UserinfoDAO extends HibernateDaoSupport implements IUserinfoDAO {private static final Log log = LogFactory.getLog(UserinfoDAO.class);

protected void initDao() {// do nothing}

public void save(Userinfo transientInstance) {log.debug("saving Userinfo instance");try {getHibernateTemplate().save(transientInstance);log.debug("save successful");} catch (RuntimeException re) {log.error("save failed", re);throw re;}
}
部门添加模块中applicationContext.xml中的代码如下:
<!-- 创建事务管理类 --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref local="sessionFactory" /></property></bean>

<!-- 创建用户事务代理类 --><bean id="userinfoDAOProxy"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"><property name="transactionManager"><ref bean="transactionManager" /></property><property name="target"><ref local="UserinfoDAO" /> </property><property name="transactionAttributes"><props><prop key="save*">PROPAGATION_REQUIRED</prop><prop key="modify*">PROPAGATION_REQUIRED</prop><prop key="delete*">PROPAGATION_REQUIRED</prop><prop key="get">PROPAGATION_REQUIRED,readOnly</prop><prop key="*">PROPAGATION_REQUIRED,readOnly</prop></props> </property></bean>


<!--进行UserinfoDAO及其代理的依赖注入--><bean id="UserinfoService" class="com.dpt.ec.service.impl.UserinfoService"> <property name="userinfoDAO"><ref bean="userinfoDAOProxy" /></property></bean>


<!--调度管理#新增部门管理员 --><bean name="/depAdd" class="com.dpt.ec.web.action.admin.DepAddAction"singleton="false"><property name="userinfoService"><ref bean="UserinfoService" /></property></bean>部门添加模块中struts-config.xml中的代码如下:<form-beans>


<form-bean name="userinfoForm" type="com.dpt.ec.web.form.UserinfoForm" /></form-beans>

<!-- 调度管理#新增加部门管理员--><action path="/depAdd" name="userinfoForm"type="org.springframework.web.struts.DelegatingActionProxy" scope="request" validate="false"><forward name="success" path="/ok.jsp" /><forward name="warning" path="error.pub" /><forward name="failure" path="error.sys" /></action>

在本项目的开发过程中运用这样的技术方法大大提高了开发效率、增加了程序的可读性、减少了模块间的耦合性,这样使得系统更加容易更新和维护。

分享到:
评论

相关推荐

    J2EE-SSH实现数据增删改查示例

    在IT行业中,J2EE-SSH是一个经典的Web开发框架组合,用于构建企业级应用程序。SSH分别代表Struts、Hibernate和Spring,这三个组件协同工作,提供了一种强大的方式来管理MVC(模型-视图-控制器)架构、持久化数据以及...

    J2EE ssh最小包

    这个压缩包可能包含了这三大框架的基本库文件,以及一些配置文件和示例代码,用于快速搭建一个SSH基础项目。开发者可以在这个基础上添加自己的业务逻辑和配置,以构建完整的Java Web应用程序。 在实际开发中,使用...

    j2ee SSH项目

    "j2ee SSH项目"是一个基础的Web应用示例,涵盖了Spring、Struts和Hibernate三大框架的整合,结合MySQL数据库,为初学者提供了动手实践的机会。通过研究和运行这个项目,开发者可以逐步掌握Java EE开发的核心技术,并...

    《轻量级 J2EE 企业应用实战--Struts+Spring+Hibernate 整合开发》源代码

    《轻量级 J2EE 企业应用实战--Struts+Spring+Hibernate 整合开发》是一本深入探讨Java EE(以前称为J2EE)轻量级框架集成的书籍,主要聚焦于Struts、Spring和Hibernate这三大开源技术的协同工作。这本书的源代码提供...

    ssh整合小实例学习

    本文将通过一个简单的实例来介绍如何整合SSH框架,并通过具体的代码示例来展示这一过程,帮助读者更好地理解和掌握SSH框架的使用方法。 #### 二、环境配置与搭建 1. **开发工具**:推荐使用Eclipse或IntelliJ IDEA...

    基于Hibernate+spring+struts的J2EE简单运用

    在Java企业级应用开发中,"基于Hibernate+Spring+Struts的J2EE简单运用"是一种常见的技术架构,也被称为SSH框架(Struts、Spring、Hibernate)。这种框架组合提供了强大的功能,包括模型-视图-控制器(MVC)设计模式...

    轻量级J2EE企业级开发实战-Struts+Spring+Hibernate整合开发

    《轻量级J2EE企业级开发实战-Struts+Spring+Hibernate整合开发》这本书是专为Java开发者设计的一本实战指南,旨在帮助读者深入理解并掌握SSH(Struts、Spring、Hibernate)三大框架的集成应用。SSH是Java领域中广泛...

    j2ee常用架构

    随着技术的发展,出现了多种基于J2EE的技术栈,其中SSH(Struts + Spring + Hibernate)和SSM(Spring + Spring MVC + MyBatis)是两个非常流行的组合。本文主要关注SSH和SSM中的Hibernate组件,并以Hibernate 5为例...

    J2EE基础练习源代码

    在源代码中,你会看到如何配置hibernate.cfg.xml文件、实体类的定义、Session的使用以及CRUD(创建、读取、更新、删除)操作的实现。 **Spring**框架是Java企业级应用的核心,它提供了依赖注入、AOP(面向切面编程...

    J2EE的小例子

    **Struts2** 是一个基于MVC模型的Web应用框架,负责处理用户请求,协调应用程序的行为。它提供了一种结构化的控制层,使得开发者可以更方便地组织和管理控制器逻辑。 **Spring** 不仅仅是一个简单的框架,它是一个...

    一个ssh项目的例子

    SSH项目是一个基于Java技术栈的Web应用程序实例,它集成了Spring、Struts和Hibernate三个核心框架,用于构建高效、可维护的企业级应用。这个“爱心宠物医院系统”就是这样一个示例,展示了如何在J2EE环境中开发和...

    SSH框架DEMO源码

    SSH框架,全称为Struts+Spring+Hibernate,是Java Web开发中的一个经典组合,用于构建高效、可维护的J2EE应用程序。这个框架集合了Struts的MVC设计模式、Spring的依赖注入(DI)与面向切面编程(AOP)以及Hibernate...

    ssh 框架 实例 通过strust hibernate spring

    在提供的"15_Spring3_SSH_01"文件中,可能包含了上述步骤的源代码示例,包括配置文件、Action类、实体类、JSP页面等,可以帮助初学者理解和学习SSH框架的集成应用。通过这个实例,开发者可以深入理解如何在实际项目...

    SSH的相关电子书

    读者可以通过其他资源学习Hibernate如何映射数据库表,执行CRUD操作,以及使用HQL和Criteria API进行查询。 4. **Spring MVC**:Spring MVC是Spring框架的一部分,提供了构建Web应用程序的MVC实现。《Spring-MVC-...

    Struts1.3_Spring3.0_hibernate3.3示例

    Struts1.3是Apache Struts的第一个主要版本,它是Java EE平台上的一个MVC框架,用于构建基于J2EE的应用程序。它的核心组件包括Action、Form Bean、ActionServlet、ActionMapping和ActionForward等,提供了一种组织...

    网上商城——SSH电子商城

    【网上商城——SSH电子商城】项目是一个典型的Java企业级应用示例,主要采用了Spring、Struts和Hibernate这三大框架,也被称为SSH框架。这个项目旨在提供一个完整的网上购物平台的实现,涵盖了电子商务系统中的关键...

    SSH--Hibernate详解

    - **广泛的应用场景**:Hibernate适用于多种不同的应用场景,无论是简单的Java应用还是复杂的J2EE架构,都能找到适合的位置。 - **与JDBC的对比**:尽管JDBC提供了直接操作数据库的能力,但Hibernate通过抽象层简化...

    spring+hibernate+struts

    在压缩包文件"J2EE29_SSH"中,可能包含了相关的配置文件(如struts.xml、spring配置文件、hibernate配置文件)、Action类、Service类、DAO类、实体类、JSP页面等,这些文件共同构成了SSH整合的用户登录示例。...

    Struts+Spring+Hibernate入门级实例

    这个入门级实例将引导初学者了解如何整合这三个框架来实现基本的CRUD(创建、读取、更新和删除)操作。 首先,我们来看Struts框架。Struts是基于Model-View-Controller(MVC)设计模式的,它提供了一个用于处理用户...

    精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序3)

    在本案例中,Spring可能被用来配置和管理业务逻辑,以及整合其他组件如Struts和Hibernate。 **Struts框架** 是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它主要负责控制应用程序的流程。Struts...

Global site tag (gtag.js) - Google Analytics