java批量删除[通俗易懂]

java批量删除[通俗易懂]java批量删除       在学习DRP项目过程中,视频中使用逐条删除的方式,但考虑到逐条删除在数据量大的情况下,可能性能较低的因素,对其进行了优化升级。采用字符拼接、批量删除。       首先,批量删除的sql语句语法为:deletet_tablefromid_keyin(value1,value2,……);       sql语句说明:删除t_table

大家好,欢迎来到IT知识分享网。

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的内部流程有了较深的认识。很值得点赞!!!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24448.html

(0)
上一篇 2023-04-10 12:00
下一篇 2023-04-10 19:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信