数据库: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" onclick="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;
}
}
分享到:
相关推荐
NULL 博文链接:https://ware.iteye.com/blog/834527
1. 发展中的持久化技术 1 1.1 JDBC 1 1.2关系对象映射(Object Relational Mapping,ORM) 2 1.3 Java数据对象(Java Data Object,JDO) 2 1.4 Java Persistence API(JPA) 2 ...5.11批量删除(Batch Remove) 22
JPA的开发手册 1. 发展中的持久化技术 1 1.1 JDBC 1 1.2关系对象映射(Object Relational Mapping,ORM) 2 1.3 Java数据对象(Java Data Object,JDO) 2 1.4 Java Persistence API...5.11批量删除(Batch Remove) 22
JPA开发文档 1. 发展中的持久化技术 2 1.1 JDBC 2 1.2关系对象映射(Object Relational Mapping,ORM) 2 1.3 Java数据对象(Java Data Object,JDO) 2 1.4 Java Persistence API...5.11批量删除(Batch Remove) 22
1.1. 开篇第一个jsp 1.2. B/S结构,请求与响应 2. 让jsp说hello 2.1. 另一个简单jsp 2.2. 中文乱码 2.2.1. 先解决响应中的乱码 2.2.2. POST乱码 2.2.3. GET乱码 3. 请求的跳转与转发 3.1. 范例 3.2. 如果用...
实现一个默认的(即无参数的)构造方法(constructor) 5.1.3. 提供一个标识属性(identifier property)(可选) 5.1.4. 使用非final的类 (可选) 5.2. 实现继承(Inheritance) 5.3. 实现equals()和hashCode...
4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问器(accessors)和是否可变的...
4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问器(accessors)和是否可变的...
4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问器(accessors)和是否可变的...
5.1.2. 实现一个默认的(即无参数的)构造方法(constructor) 5.1.3. 提供一个标识属性(identifier property)(可选) 5.1.4. 使用非final的类 (可选) 5.2. 实现继承(Inheritance) 5.3. 实现equals()和...
4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问器(accessors)和是否可变的...
5.1.2. 实现一个默认的(即无参数的)构造方法(constructor) 5.1.3. 提供一个标识属性(identifier property)(可选) 5.1.4. 使用非final的类 (可选) 5.2. 实现继承(Inheritance) 5.3. 实现equals()和...
实例014 使当前项目依赖另一个项目 21 1.3 界面设计器 22 实例015 安装界面设计器 22 实例016 设计Windows系统的运行对话框 界面 23 实例017 设计计算器程序界面 26 实例018 设计关于进销存管理系统的界面 27 第2章 ...
4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问器(accessors)和是否可变的...
4.1.2. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.3. 提供一个标识属性(identifier property)(可选) 4.1.4. 使用非final的类 (可选) 4.2. 实现继承(Inheritance) 4.3. 实现equals()和...
4.1.2. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.3. 提供一个标识属性(identifier property)(可选) 4.1.4. 使用非final的类 (可选) 4.2. 实现继承(Inheritance) 4.3. 实现equals()和...
4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问器(accessors)和是否可变的...