Structs中:删除功能的实现

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" %>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值