数据库:SQLServer2005服务器:Tomcat6.0开发工具:MyEclipse6.0采用框架:Struts1.2
贴出完整代码 :
创建SQL脚本:CREATE TABLE [dbo].[batch]( [id] [int] IDENTITY(1,1) NOT NULL, [name] [varchar](50) NULL, [password] [varchar](50) NULL, CONSTRAINT [PK_batch] PRIMARY KEY CLUSTERED ( [id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
GO
连接数据库类:public class DBConnection { private static DBConnection dbc = null;
public static Connection getDBConnection() throws Exception { if (dbc == null) { dbc = new DBConnection(); } return dbc._getConnection(); }
public Connection _getConnection() throws Exception { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); return DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;DatabaseName=dbtest", "sa", "sqlserver2005"); }}
采用DAO工厂模式:
PO类:public class Batch { private int id; private String name; private String password;
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }}
DAO接口:
public interface BatchDAO { public List<Batch> queryAll();
public void deleteSelect(int[] str);}
实现接口类:
public class BatchDAOImpl implements BatchDAO { Connection con = null; PreparedStatement pst = null; ResultSet rst = null;
public void deleteSelect(int[] str) { String sql = "delete from batch where id in("; if(str.length==1){ sql=sql+str[0]+")";}else{ for(int i=0;i<str.length;i++){ if(i==0){ sql=sql+str[0]; } else if(i==str.length-1){ sql=sql+","+str[i]+")"; }else{ sql=sql+","+str[i]; } } } try { con = DBConnection.getDBConnection(); pst = con.prepareStatement(sql); pst.execute(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (pst != null) pst.close(); if (con != null) con.close(); } catch (Exception e) { e.printStackTrace(); } } }
public List<Batch> queryAll() { List<Batch> list = new ArrayList<Batch>(); String sql = "select * from batch"; try { con = DBConnection.getDBConnection(); pst = con.prepareStatement(sql); rst = pst.executeQuery(); while (rst.next()) { Batch b = new Batch(); b.setId(rst.getInt("id")); b.setName(rst.getString("name")); b.setPassword(rst.getString("password")); list.add(b); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (rst != null) rst.close(); if (pst != null) pst.close(); if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } return list; }}
工厂类:
public class DAOFactory { public static BatchDAO getBatchDAOImplInstance() { return new BatchDAOImpl(); }}
Action:继承DispatchAction
public class BatchAction extends DispatchAction { /* * Generated Methods */
/** * Method execute * * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward queryAll(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { List<Batch> list = DAOFactory.getBatchDAOImplInstance().queryAll(); request.setAttribute("list", list); return mapping.findForward("display"); }
public ActionForward deleteSelect(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String[] id = request.getParameterValues("name"); int[] i = new int[id.length]; for (int j = 0; j < id.length; j++) { i[j] = Integer.parseInt(id[j]); } DAOFactory.getBatchDAOImplInstance().deleteSelect(i); return mapping.findForward("delete"); }}struts-config.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config> <data-sources /> <form-beans /> <global-exceptions /> <global-forwards /> <action-mappings > <action input="/index.jsp" parameter="batch" path="/batch" type="com.batch.delete.struts.action.BatchAction" validate="false"> <forward name="display" path="/batchList.jsp" /> <forward name="delete" path="/batchList.jsp" /> </action>
</action-mappings>
<message-resources parameter="com.batch.delete.struts.ApplicationResources" /></struts-config>
以下是页面内容:
<%@ page contentType="text/html;charset=GBK"%><%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%><%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%><%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>batch_delete</title> </head> <script type="text/javascript" src="js/check.js"></script> <body> <center> <h2> Batch Delete Database Data Sample Display </h2> <hr> <form action="batch.do?batch=deleteSelect" name="myForm" method="post"> <table style="border-collapse: collapse" border="1" bordercolor="#1E90FF" height="60" cellpadding="3"> <tr style="background: #87CEFA;"> <td> </td> <td> ID </td> <td> Name </td> <td> Password </td> </tr> <logic:iterate id="li" name="list"> <tr> <td> <input type="checkbox" name="name" value="${li.id }"> </td> <td> ${li.id } </td> <td> ${li.name } </td> <td> ${li.password } </td> </tr> </logic:iterate> <tr> <td colspan="4"> <input type="button" value="SelectAll" οnclick="checkAll()"> <input type="submit" value="DeleteSelect"> <input type="reset" value="ResetSelect"> </td> </tr> </table> </form> </center> </body></html>
JSP页面引入一个js文件:
function checkAll() { for (var i = 0; i < myForm.name.length; i++) { myForm.name[i].checked=true; }}