大家好,欢迎来到IT知识分享网。
java批量删除
在学习DRP项目过程中,视频中使用逐条删除的方式,但考虑到逐条删除在数据量大的情况下,可能性能较低的因素,对其进行了优化升级。采用字符拼接、批量删除。
首先,批量删除的sql语句语法为:delete t_table from id_key in (value1, value2, ……);
sql语句说明:删除t_table表中,id_key主键为value1, value2, ……等数据项。
从jsp的JavaScript中进提交(MVC中的V层)
首先,批量删除的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