Structs中:删除功能的实现

来源:互联网 发布:学会了c语言能干什么 编辑:程序博客网 时间:2024/05/17 08:52
Structs中:删除功能的实现import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionMessage;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;/** * DeleteForm handles the form * that the user will use to search the database. */public final class DeleteForm extends ActionForm { private String name = null; private String phone = null; private String address = null;public String getName() { return name;}public void setName(String name) { this.name = name;}public String getPhone() { return phone;}public void setPhone(String phone) { this.phone = phone;}public String getAddress() { return address;}public void setAddress(String address) { this.address = address;}public void reset(ActionMapping mapping, HttpServletRequest request) { this.name = null; this.phone = null; this.address=null;}public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if ( ((name == null) || (name.length() < 1)) &&((phone == null)|| (phone.length() < 1)) &&((address == null) || (address.length() < 1)) ) errors.add("search", new ActionMessage("error.searchcriteria.required")); return errors; }}Action 文件import java.io.IOException;import java.util.Locale;import java.util.Properties;import java.util.ResourceBundle;import java.util.MissingResourceException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionMessage;import org.apache.struts.action.ActionMessages;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionServlet;import org.apache.struts.util.MessageResources;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import addressbook.Constants;import addressbook.forms.DeleteForm;import addressbook.model.AddressBookBean;/** * DeleteAction will take the search parameters * specified by the user and create the Sql statement to be used * by the appropriate forward. */public final class DeleteAction extends AbstActionBase { private Log log = LogFactory.getLog(this.getClass().getName()); public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Locale locale = getLocale(request); MessageResources messages = getResources(request); ActionMessages errors = new ActionMessages(); String name = ((DeleteForm) form).getName(); String phone = ((DeleteForm) form).getPhone(); String address=((DeleteForm)form).getAddress(); if (!errors.isEmpty()) { saveErrors(request, errors); return (new ActionForward(mapping.getInput())); } String strSql = new String("DELETE FROM " + Constants.TABLENAME + " WHERE ");/* if (!name.equals("")) strSql = strSql + "name LIKE '"+ name +"%' AND"; if (!phone.equals("")) strSql = strSql + " phone LIKE '"+ phone +"%' AND"; if (!address.equals("")) strSql = strSql + " address LIKE '"+ address +"%'"; else strSql = strSql.substring(0,strSql.length()-3); strSql = strSql + "ORDER by ID"; */ strSql = strSql + "name='" + name + "'"; strSql = strSql.substring(0,strSql.length()); try { AddressBookBean bean=new AddressBookBean(name,phone,address); bean.delete(strSql); } catch(Exception ex) { ex.printStackTrace(System.out); errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.delete.failed")); } HttpSession session = request.getSession(); if (log.isDebugEnabled()) { log.debug("SearchAction session = " + session); log.debug("SearchAction strSql = " + strSql); } session.setAttribute(Constants.SQLSTMT_KEY, strSql); ActionMessages actionMessages = new ActionMessages(); actionMessages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("record.Deleted")); saveMessages(request,actionMessages); // return (mapping.findForward(Constants.FORWARD_CONFIRMATION)); return (mapping.findForward(Constants.FORWARD_SUCCESS)); }}模型文件:import java.sql.*;import java.util.*;import addressbook.Constants;public class AddressBookBean { String name; String phone; String address; public AddressBookBean() { } public AddressBookBean(String name,String phone,String address) { this.name=name; this.phone=phone; this.address=address; } public String getName(){ return name; } public String getPhone(){ return phone; } public String getAddress(){ return address; } public void setName(String name){ this.name=name; } public void setPhone(String phone){ this.phone=phone; } public void setAddress(String address){ this.address=address; } public void insert()throws Exception{ Connection con= DbUtil.connectToDb(); PreparedStatement pStmt=null; try{ pStmt=con.prepareStatement("INSERT INTO " + Constants.TABLENAME + " (name,phone,address)"+ " values(?,?,?)"); con.setAutoCommit(false); pStmt.setString(1,name); pStmt.setString(2,phone); pStmt.setString(3,address); int j=pStmt.executeUpdate(); con.commit(); } catch(Exception ex) { try{ con.rollback(); }catch(SQLException sqlex){ sqlex.printStackTrace(System.out); } throw ex; }finally{ try{ pStmt.close(); con.close(); }catch(Exception e){e.printStackTrace();} }} public static Vector delete(String strSql)throws Exception{ Vector addressbookBeans=new Vector(); Connection con= DbUtil.connectToDb(); PreparedStatement pStmt=null; ResultSet rs=null; try{ pStmt=con.prepareStatement(strSql); con.setAutoCommit(false); pStmt.executeUpdate(); con.commit(); rs=pStmt.executeQuery(); while(rs.next()) addressbookBeans.add(new AddressBookBean( rs.getString("NAME"),rs.getString("PHONE"),rs.getString("ADDRESS"))); return addressbookBeans; }finally{ try{ rs.close(); pStmt.close(); con.close(); }catch(Exception e){e.printStackTrace();} } } public static Vector search(String strSql)throws Exception{ Vector addressbookBeans=new Vector(); Connection con= DbUtil.connectToDb(); PreparedStatement pStmt=null; ResultSet rs=null; try{ pStmt=con.prepareStatement(strSql); rs=pStmt.executeQuery(); while(rs.next()) addressbookBeans.add(new AddressBookBean( rs.getString("NAME"),rs.getString("PHONE"),rs.getString("ADDRESS"))); return addressbookBeans; }finally{ try{ rs.close(); pStmt.close(); con.close(); }catch(Exception e){e.printStackTrace();} } }}//JSP页面<%@ include file="taglibs.jsp" %>