批量删除使用关键字in
如果id是int 可以使用下面的代码生成String类型的ids
参数为String dis
public static String parseIdsToString(List<String> blogIds){
if(blogIds.size()!=0){
String formatIds = "";
for (String item:blogIds) {
formatIds+=item+",";
}
formatIds = formatIds.substring(0,formatIds.lastIndexOf(","));
return formatIds;
}
return "";
}
如果是varchar 有两种处理方式
第一种 调用以下方法获得ids(‘bl201’,'bl202') 同时需要将mapper中的#改为$ 但是$不安全所以推荐第二种
参数为String dis
public static String parseIdsToString(List<String> blogIds){
if(blogIds.size()!=0){
String formatIds = "";
for (String item:blogIds) {
formatIds+="'"+item+"'"+",";
}
formatIds = formatIds.substring(0,formatIds.lastIndexOf(","));
return formatIds;
}
return "";
}
第二种:直接在mapper文件中修改
参数为List<String> ids
<delete id="deleteBlogInfoById" parameterType="java.util.List">
delete from blog_info
<where>
blog_id in
<foreach collection="list" item="item" separator=","
open="(" close=")" index="index">
#{item}
</foreach>
</where>
</delete>
注意点:
deleteBlogInfoById mapper中对应的方法名称
java.util.list:参数类型
collection:注意这里不是使用参数名ids 而是对应的参数类型 如果是java.util.array 那么collection就等于array