1. 程式人生 > >SSH註解框架實現批量刪除功能

SSH註解框架實現批量刪除功能

一、UserDao.java

	/**
	 * 批量刪除使用者
	 * @param ids 使用者Id陣列
	 * @return
	 */
	boolean delUserForBatch(Integer[] ids);

二、UserDaoImpl.java

	@Override
	public boolean delUserForBatch(Integer[] ids) {
		// TODO Auto-generated method stub
		String sql = "delete from User where id in (:ids)"; 
		Query query = sessionFactory.getCurrentSession().createSQLQuery(sql);
		query.setParameterList("ids", ids);
		int jieguo= query.executeUpdate();
		if (jieguo>0) {
			return true;
		}else {
			return false;
		}
		
	}

三、UserBiz.java

	/**
	 * 批量刪除使用者
	 * @param ids 使用者Id陣列
	 * @return
	 */
	boolean delUserForBbatch(Integer[] ids);

四、UserBizImpl.java

	@Override
	public boolean delUserForBatch(Integer[] ids) {
		// TODO Auto-generated method stub
		return userDao.delUserForBatch(ids);
	}

五、UserAction.java

	//接收使用者集合的陣列 
	private Integer[] ids;
	public Integer[] getIds() {
		return ids;
	}
	public void setIds(Integer[] ids) {
		this.ids = ids;
	}
	//批量刪除使用者方法(前端呼叫)
	@Action(value = "delUserForBatch", results = { @Result(name = "success", type = "json") })
	public String delUserForBatch() {
		String result = "no";
		boolean flag = userBiz.delUserForBatch(ids);
		if (flag) {
			result = "ok";
		} else {
			result = "no";
		}
		//轉換為json
		convertToJson(result);
		return SUCCESS;
	}
	
	public static void  convertToJson(String str) {
		try {
			HttpServletResponse response = ServletActionContext.getResponse();
			response.setCharacterEncoding("utf-8");
			response.setContentType("text/html; charset=UTF-8");			
			PrintWriter writer =  response.getWriter();
			writer.write(str);
			writer.flush();
			writer.close();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

六、Jsp頁面

<table>
	<tr>
		<th><input id="all" type="checkbox" /></th>
		<th>標準號</th>
		<th>中文名稱</th>
		<th>版本</th>
		<th>釋出日期</th>
		<th>實施日期</th>
		<th>操作</th>
	</tr>
	<c:forEach items="${stdList }" var="std">
		<tr>
			<td><input name="id" type="checkbox" value="${std.id }" /></td>
			<td>${std.std_num }</td>
			<td>${std.zhname }</td>
			<td>${std.version }</td>
			<td>
				<fmt:formatDate value="${std.release_date }" pattern="YYYY-MM-dd" />
			</td>
			<td>
				<fmt:formatDate value="${std.impl_date }" pattern="YYYY-MM-dd" />
			</td>
			<td>
				<a href="${std.package_path }" target="_blank">下載</a>&nbsp;&nbsp;
				<a href="edit.html?id=${std.id }">修改</a>
			</td>
		</tr>
	</c:forEach>
</table>
<button id="del">批量刪除</button>
<script type="text/javascript" src="statics/js/jquery-1.12.4.js"></script>
<script type="text/javascript">
	//全選
	var oall = document.getElementById("all");
	var oid = document.getElementsByName("id");
	oall.onclick = function() {
		for(var i = 0; i < oid.length; i++) {
			//所有的選擇框和全選一致
			oid[i].checked = oall.checked;
		}
	};
	//點選複選框
	for(var i = 0; i < oid.length; i++) {
		oid[i].onclick = function() {
			//判斷是否全部選中,遍歷集合
			for(var j = 0; j < oid.length; j++) {
				if(oid[j].checked == false) {
					oall.checked = false;
					break;
				} else {
					oall.checked = true;
				}
			}
		};
	}
	//點選批量刪除
	$("#del").click(function() {
		var ids = []; // 定義一個使用者Id陣列
		$("[name='id']:checked").each(function() {
			ids.push(this.value);
		});
		if(ids.length == 0) {
			alert("請至少選擇一項要刪除的資料");
			return;
		}

		var json = {
			"ids": ids
		};

		$.get("delUserForBatch.html", json, function(data) {
			if(data == "ok") {
				alert("刪除成功!");
				//刪除成功後,在這裡執行重新整理
			} else {
				alert("刪除失敗!");
			}
		});
	});
</script>