java批量删除

原创 2015年12月29日 20:57:23
java批量删除

        在学习DRP项目过程中,视频中使用逐条删除的方式,但考虑到逐条删除在数据量大的情况下,可能性能较低的因素,对其进行了优化升级。采用字符拼接、批量删除。
        首先,批量删除的sql语句语法为:delete t_table from id_key in (value1, value2, ……)
        sql语句说明:删除t_table表中,id_key主键为value1, value2, ……等数据项。
       
        从jsp的JavaScript中进提交(MVC中的V层)
	/**
	 * 删除用户
	 * 		* 批量删除
	 */
	function deleteUser() {
		var userID = new Array();
		var selectFlags = document.getElementsByName("selectFlag");
		var j = 0;
		for(var i=0; i<selectFlags.length; i++) {
			if(selectFlags[i].checked == true) {
				userID[j] = (selectFlags[i].id).toString();
				j++;
			}
		}
		var del = "del";
		window.self.location = "user_maint.jsp?userID[]=" + userID + "&command=" + del;
		
	}
       
        在DRP中,是在jsp文件中插入java服务器端代码的方式进行处理的(MVC中的C层)       
<%	
	String [] userId;
	userId = request.getParameterValues("userID[]");
	String command = request.getParameter("command");
	if("del".equals(command)){
		UserManager.getInstance().removeUser(userId);
		out.println("删除用户成功!");
	}
%>	

        执行批量删除的代码:(MVC中的M层,包括负责与数据库进行交互)
	/**
	 * 根据用户ID,删除用户
	 * @param 用户ID:userId
	 * @throws SQLException
	 */
	public void removeUser(String [] userId) throws SQLException{
		
		String aString = null;
		StringBuffer delSql = new StringBuffer();
		
		String userID = userId[0]; 
	    String[] strarray = userID.split(","); 

		// 将需要删除的 用户ID数组 循环装载到 StringBuffer中
		if(strarray.length > 1) {
			delSql.append("delete from t_user where user_id in (" + "'" + strarray[0] +"'");
			for (int i = 1; i < strarray.length; i++) {
				delSql.append(",")
				.append("'")
				.append(strarray[i])
				.append("'")
				.append(")");
			}
		}else {
			delSql.append("delete from t_user where user_id in (" + "'" + strarray[0]+ "'" + ")");
		}
		
		//delSql.append("delete from t_user where user_id in ('a12345','a1234')");    // 拼串示例效果
		
		Connection conn = null;
		PreparedStatement patmt = null;
		try {
			conn = DbUtil.getConnection();
			patmt = conn.prepareStatement(delSql.toString());
			
			patmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			patmt.close();
			conn.close();
		}
	}
       
        在DRP中,项目比较古典,由于没有使用hibernate、struts2等,使得项目比较紧凑,层与层之间还有较强的耦合性,代码混乱,逻辑紊乱的情况还是较明显。但正是对工具的泛泛使用,内容中对原理的结束又细致、反复,对servlet的内部流程有了较深的认识。很值得点赞!!!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java实现批量删除用户,选中删除用户

jsp标签代码: 管用户列表 ID姓名 ${user.id }${user.name} js方法代码: //删除所选中的管理员function...

JSP页面实现批量删除数据

危楼高百尺,手可摘星辰。 不敢高声语,恐惊天上人。 —李白《夜宿山寺》 首次:FindServlet.java-->bookList.jsp 删除:bookList.jsp-->DelServle...

java 中对于传入ids进行批量的删除

前台页面的js 代码: function clearAndquery(){ $("input").val(''); $("select").val(''); $("#pagerForm").a...

JAVA-DAO实现批量删除

表结构CREATE TABLE `user` ( `u_id` int(11) NOT NULL AUTO_INCREMENT, `u_name` varchar(255) NOT NULL,...

java实现批量删除用户,选中删除用户

jsp标签代码: 管理员列表 ID 真是姓名 ${user.id } ${user.userNam...

jquery+java选中批量删除

页面 返回 添加图片 批量添加图片 图集管理 -- ${(cou...

Java对数据库进行事务处理(批量删除操作)

本文是记录Java对数据库进行事务处理(删除操作),在开始之前先来看下面这样的一个页面图:         上面这张图片显示的是从数据库中查询出的用户信息,信息中进行了分页处理,然后每行的前面提供...
  • cselmu9
  • cselmu9
  • 2012年08月10日 14:22
  • 19709

Mybatis实现批量删除操作

这里主要考虑两种参数类型:数组或者集合.而这点区别主要体现在EmpMapper.xml文件中标签的collection属性: 当collection=”array“时,表名参数为数组; 当collec...

如何实现springmvc+mybatis用多选框批量删除的功能Java代码

今天写了一个批量删除的功能,在后台传值过程中一直出错,最终还是请教了北京的一位高手帮我解决的,在此首先要好好感谢他,以后我有幸能帮助别人的话,决不推辞。 废话不说,直接进入正题,我会将在编写过程中出...

Java读取和删除文件夹下的所有文件

package otherstudy; import java.io.File; import java.io.FileNotFoundException; import java.io.IOExc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java批量删除
举报原因:
原因补充:

(最多只允许输入30个字)