-
ssh集成后,hibernate做表单修改5
要修改的jsp表单内容<%@ include file="../common/IncludeTop.jsp"%> <div id="Catalog"> <html:form action="account.do?method=editAccount" method="post"> <h3> User Information </h3> <table> <tr> <td> User ID: </td> <td> ${actionBean.username} </td> </tr> <tr> <td> New password: </td> <td> <html:text property="password"></html:text> </td> </tr> <tr> <td> Repeat password: </td> <td> <html:text property="repeatedPassword"></html:text> </td> </tr> </table> <h3>Account Information</h3> <table> <tr> <td>First name:</td> <td><html:text property="firstName" /></td> </tr> <tr> <td>Last name:</td> <td><html:text property="lastName" /></td> </tr> <tr> <td>Email:</td> <td><html:text property="email" size="40" /></td> </tr> <tr> <td>Phone:</td> <td><html:text property="phone" /></td> </tr> <tr> <td>Address 1:</td> <td><html:text property="address1" size="40" /></td> </tr> <tr> <td>Address 2:</td> <td><html:text property="address2" size="40" /></td> </tr> <tr> <td>City:</td> <td><html:text property="city" /></td> </tr> <tr> <td>State:</td> <td><html:text property="state" size="4" /></td> </tr> <tr> <td>Zip:</td> <td><html:text property="zip" size="10" /></td> </tr> <tr> <td>Country:</td> <td><html:text property="country" size="15" /></td> </tr> </table> <h3>Profile Information</h3> <table> <tr> <td>Language Preference:</td> <td> <html:select property="languagePreference"> <logic:iterate id="language" name="LANGUAGE_LIST"> <html:option value="language"> <bean:write name="language"/> </html:option> </logic:iterate> </html:select> </td> </tr> <tr> <td>Favourite Category:</td> <td> <html:select property="favouriteCategoryId"> <logic:iterate id="category" name="CATEGORY_LIST"> <html:option value="category"> <bean:write name="category"/> </html:option> </logic:iterate> </html:select> </td> </tr> <tr> <td>Enable MyList</td> <td> <html:checkbox property="listOption" /> </td> </tr> <tr> <td>Enable MyBanner</td> <td> <html:checkbox property="bannerOption" /> </td> </tr> </table> <html:submit value="Save Account Information"></html:submit> </html:form> <html:link page="/order.do?method=listOrders"> My Orders </html:link> </div> <%@ include file="../common/IncludeBottom.jsp"%>
struts-comfig.xml配置了action和form-bean<form-beans> <form-bean name="accountForm" type="com.frankco.biz.web.form.AccountForm"></form-bean> </form-beans> <action path="/account" type="com.frankco.biz.web.actions.AccountAction" scope="request" parameter="method" name="accountForm"> <forward name="SIGNON" path="/WEB-INF/jsp/account/SignonForm.jsp"></forward> <forward name="CATALOG_VIEWMAIN" path="/catalog.do?method=viewMain"></forward> <forward name="EDIT_ACCOUNT" path="/WEB-INF/jsp/account/EditAccountForm.jsp"></forward> </action>
下面是AccountForm:package com.frankco.biz.web.form; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; public class AccountForm extends ActionForm { private String username; private String password; private String repeatedPassword; private String email; private String firstName; private String lastName; private String status; private String address1; private String address2; private String city; private String state; private String zip; private String country; private String phone; private String favouriteCategoryId; private String languagePreference; private boolean listOption; private boolean bannerOption; private String bannerName; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRepeatedPassword() { return repeatedPassword; } public void setRepeatedPassword(String repeatedPassword) { this.repeatedPassword = repeatedPassword; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getAddress1() { return address1; } public void setAddress1(String address1) { this.address1 = address1; } public String getAddress2() { return address2; } public void setAddress2(String address2) { this.address2 = address2; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getState() { return state; } public void setState(String state) { this.state = state; } public String getZip() { return zip; } public void setZip(String zip) { this.zip = zip; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getFavouriteCategoryId() { return favouriteCategoryId; } public void setFavouriteCategoryId(String favouriteCategoryId) { this.favouriteCategoryId = favouriteCategoryId; } public String getLanguagePreference() { return languagePreference; } public void setLanguagePreference(String languagePreference) { this.languagePreference = languagePreference; } public boolean isListOption() { return listOption; } public void setListOption(boolean listOption) { this.listOption = listOption; } public boolean isBannerOption() { return bannerOption; } public void setBannerOption(boolean bannerOption) { this.bannerOption = bannerOption; } public String getBannerName() { return bannerName; } public void setBannerName(String bannerName) { this.bannerName = bannerName; } /** * 不推荐使用ActionErrors */ /* @Override public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if(getUsername() == null || getUsername().length() < 1) { errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.invalidUsername")); } if(getPassword() == null || getPassword().length() < 1) { errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.invalidPassword")); } return errors; } */ }
我这里怎么把form中用户提交的Account信息在数据库做修改(数据库已经存在数据记录)
我想到几种方式;
1.将form的Account信息通过反射填充到Account的pojo,pojo取得这些信息后
传到dao层给修改;但这里修改有些疑问。
public void update(Account account) throws DataAccessException { getHibernateTemplate().update(account); }
直接这样修改?
hibernate的修改,我记得好像要先将Account中数据库中取出,此时Account为persistent状态,修改account的数据,再update到数据库。
但是我这里已经有了Account的对象作为参数传进来了,难道我要先从数据库get或load Account的对象出来,再把参数的account信息set到刚get或load出来的Account对象属性中(这里有两Account的pojo)再修改?
那太麻烦了。
我从Form填充到pojo,在dao层又要从pojo填充到get或load出的persistent状态的pojo,再做修改。蛋疼!!eggache!!
2.将AccountForm中用户提交的数据,复制到AccountDTO。数据传输对象。
AccountDTO作为参数传递到dao层用原生sql修改。public void updateAccount(AccountDTO accountDTO) { UPDATE ACCOUNT SET EMAIL = #{email}, FIRSTNAME = #{firstName}, LASTNAME = #{lastName}, STATUS = #{status}, ADDR1 = #{address1}, ADDR2 = #{address2,jdbcType=VARCHAR}, CITY = #{city}, STATE = #{state}, ZIP = #{zip}, COUNTRY = #{country}, PHONE = #{phone} WHERE USERID = #{username} ......... }
但我用这种方法完全体会不到hibernate给我带来的好处。
大家平时系统中是怎么实现的呢?
hibernate做修改真心麻烦啊!!还不如写jdbc呢!!!2012年9月24日 13:13
目前还没有答案
相关推荐
SSH2_Hibernate3.2jar包是用于Java开发的一个整合框架,主要包含了Struts、Spring和Hibernate这三个组件,常被称为SSH。在早期的Java Web应用开发中,SSH框架因其强大的功能和灵活性而被广泛采用。虽然现在随着...
**SSH集成项目详解** 在IT行业中,SSH是一个广泛使用的Java Web开发框架组合,它由Spring、Hibernate和Struts三个开源框架组成。这三个框架协同工作,为开发者提供了强大的后端服务和用户界面管理能力,使得复杂的...
这个“ssh集成开发样板工程”提供了完整的开发环境和配置,帮助开发者快速搭建基于SSH的项目结构。 Struts2是MVC(Model-View-Controller)设计模式的实现,它负责处理用户请求并展示结果。Struts2的核心是Action,...
### Struts1.2 + Hibernate3.2 + Spring2.5 (SSH) 集成详细过程 #### 一、前言 随着企业级应用的需求不断增长,单一框架已难以满足复杂的业务逻辑处理与数据持久化的高效管理。因此,集成多个框架成为了解决这一...
Spring框架是整个SSH集成的核心,它负责管理对象的生命周期和依赖注入,同时提供了AOP(面向切面编程)和声明式事务管理等功能。Spring与Hibernate的结合可以让开发者更方便地进行数据库操作,而无需过多关注底层...
SSH集成是Java Web开发中的一种常见技术组合,指的是Struts2、Hibernate和Spring三大框架的整合。这三者分别负责MVC(Model-View-Controller)架构中的表现层、持久层和业务层,构建出一个高效、灵活且可扩展的企业...
SSH集成是Java开发中常见的三大框架整合,包括Struts2、Hibernate和Spring。这些框架的组合使得企业级应用的开发更为高效,提供了模型-视图-控制器(MVC)架构、对象关系映射(ORM)以及依赖注入(DI)等功能。 **...
【JBPM4.4+SSH2 业务流 绑定表单Demo】是一个结合了Java企业级框架Spring(SSH2中的S和H)与工作流引擎JBPМ4.4的实战示例,用于演示如何在业务流程中集成自定义表单。这个Demo主要涵盖了以下几个关键知识点: 1. *...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个项目提供了一个包含Struts2、Spring和Hibernate简单应用实例的压缩包,帮助开发者了解和学习如何在实际项目中整合...
SSH集成在IT行业中通常指的是Spring、Struts和Hibernate这三个开源框架的集成,它们是Java Web开发中的常用组件,用于构建高效、可维护的企业级应用程序。在这个"SSH 集成 bbs项目"中,我们将深入探讨如何将这三个...
SSH2框架,全称为Spring、Struts和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了全面的企业级应用解决方案,适用于构建高效、可维护性高的Web应用程序。Spring作为核心容器,负责...
在本项目"ssh集成实现对学生信息的管理"中,SSH框架被用来创建一个功能完善的学生信息管理系统,实现了对学生数据的CRUD(Create、Read、Update、Delete)操作,并能直观地展示在前端。 首先,让我们详细了解一下...
SSH整合是Java开发中一种常见的框架集成方式,它将Struts2、Spring和Hibernate三个流行的开源框架结合在一起,用于构建高效、可维护的企业级Web应用。在这个“step by step 06 ssh整合hibernate”教程中,我们将深入...
**SSH框架集成** SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这三个框架分别负责不同的职责:Struts2处理前端展示逻辑,Spring管理依赖和业务...
SSH1框架是Web开发中的一种经典组合,由Spring、Struts和Hibernate三个开源框架整合而成。这个框架集合了模型-视图-控制器(MVC)的设计模式,为开发者提供了强大的后端逻辑处理、业务对象管理和数据持久化能力,...
SSH框架,全称为Spring、Struts2和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了模型-视图-控制器(MVC)架构模式,数据库持久化,以及强大的前端展示能力,使得开发者能高效地构建...
### SSH(Struts2, Spring, Hibernate)三大框架集成详解 #### 一、概述 SSH框架,即Struts2、Spring以及Hibernate三个框架的集成,是Java Web开发中非常流行的一种解决方案。它结合了MVC架构的优势,通过Struts2...
SSH集成的三大框架,指的是Spring、Struts2和Hibernate,这是一套经典的Java Web开发组合,常用于构建高效、稳定的企业级应用。Spring作为核心框架,负责管理对象和依赖注入,Struts2作为表现层框架,处理HTTP请求和...
SSH(Spring、Struts、Hibernate)或WSH(Webwork、Spring、Hibernate)集成是Java企业级应用开发的常见实践,旨在构建高效、模块化且易于维护的系统。 首先,Webwork是Action-based的MVC框架,它的核心在于Action...
SSH是Java开发中常见的三个框架的缩写,分别代表Struts、Spring和Hibernate。这个压缩包包含的是这三个框架的特定版本:Struts2.3.20、Spring4.1.1和Hibernate4.3.7。这些版本在当时是相对稳定的,并广泛应用于企业...