如何批量删除list循环出来的值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何批量删除list循环出来的值?相关的知识,希望对你有一定的参考价值。
我的信息是用list从数据库中循环出来的值。
<%foreach (AnycallMODEL.kehu kh in kehulist)
%>
<%=kh.Kehuid %>,
<%=kh.Kehuname %>
<%%>
循环出来的。然后我的意思是在循环出来后有一个全选按钮,点击了以后都选中了,然后点击删除按钮把这些选中的都删除掉。就是这个意思了、
如果是数据库的话,就必须读出所有想删除的记录,比如你说的“有一个全选按钮,点击了以后都选中了,然后点击删除按钮”,那么服务器后台收到删除按钮发送的那些kh.Kehuid,就将所有这些id都用“,”隔开拼接起来,比如“1,3,4,6”这样一个字符串,然后用类似
DELETE * FROM kehu WHERE Kehuid in (......)
....那里就是这个字符串,就可以批量删除数据库内数据了。但这个其实不是Java的范畴而是SQL的范畴了。 参考技术A 对于java list集合,要一次性溢出多条数据实现方法:
首先,可以先定义个相同的list,比如原本的List存到是String 类型,那么就再定义个存String类型的List;
然后,在循环list时,把要批量删除的元素添加到新建的list中,若说,本身就已经存在一个要移除的集合列表,则可直接将newList指向该列表;
最后,在循环list结束后,确定不需要再移除其他元素了,就调用oldList.removeAll(newList);
通过以上代码就可以把oldList跟newList的交集从oldList中移除 参考技术B 没太没明白,貌似你是想在页面操作是吧,其实道理是一样的,本身就是个数组,你的全选按钮,可以做个复选框。根据位置选择删除,其实程序上实现来讲还是一个个删除的,全部删除应该只有clear和removeAll,你根本不用弄什么全部选中。 参考技术C 用一个for循环遍历List时,不能删除其中的元素。
用Iterator操作即可。
还有 Pro类要重写一下 toString方法。这样System.out.println里才能打印出来。
import java.util.*;
public class ListTest
public static void main(String[] args)
List<Pro> list = new ArrayList();
Pro p1 = new Pro("1000","1000");
Pro p2 = new Pro("1001","1002");
Pro p3 = new Pro("1003","1004");
Pro p4 = new Pro("1005","1006");
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
for (Iterator<Pro> i = list.iterator(); i.hasNext();)
Pro o = i.next();
if(o.getProid().equals(o.getProName()))
i.remove();
System.out.println(list);
class Pro
private String proid;
private String proName;
public String getProid()
return proid;
public void setProid(String proid)
this.proid = proid;
public String getProName()
return proName;
public void setProName(String proName)
this.proName = proName;
public Pro(String proid, String proName)
super();
this.proid = proid;
this.proName = proName;
public Pro()
public String toString()
return proid + ":" + proName;
参考技术D 用JS选中标签然后把里面的数据删除掉 第5个回答 2012-09-11 我觉得也只有一条条的删,你list.size()有多大,你就得在循环里面删几次,不一定要一次删,java运行很快的,这点是看不来的追问
我现在提问的的是aspx的,
大概就是这样的,表里的值是list循环出来的。点击表的复选框,然后删除,,,也可以全选批量删除,跪求大神帮忙
这个也只有一条条的删,你可以现在前台把要删除的信息的id组装成数组,list之类的,传到后台在一条条的删吧。
mybatis的批量删除操作
需求描述:将符合某条件的几条记录删除
解决思路:对于多个id,可以使用sql关键词 in ,只要满足数据库的id在你的id集合或者list中,就删除,从而实现批量删除。循环delete方法是在是low到爆,就不再提了。
代码:
List<OhSysPriRoleOrg> roList = (List<OhSysPriRoleOrg>)dao.findForList("OhSysPriRoleOrgMapper.getResByRoleIdAndOrgId",paramMap);
//删除
dao.batchDelete("XXXRoleOrgMapper.deleteById",roList);
mapper中的sql:
<delete id="deleteById" parameterType="String">
delete from <include refid="tableName"></include>
where
role_org_id in
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item.roleOrgId}
</foreach>
</delete>
总结:注意用好foreach就行,其中的collection是什么类型的一定要对应好。
以上是关于如何批量删除list循环出来的值?的主要内容,如果未能解决你的问题,请参考以下文章