简单的删除功能很容易实现,但是在实际开发中批量删除是很常见的一个功能,最近做项目刚好使用过这个功能。所以记录下来。
其实批量删除和删除没有很大的区别,只是修改一下sql语句,然后参数传进来的是一个数组的形式,然后在sql语句中循环这个数组,执行sql语句。直接上代码。
DAO层代码
/**批量删除简历*/
void deleteMany(String[] resumeID);
sevice接口
/**批量删除*/
void deleteMany(String resumeID[]);
service层实现类代码
/**批量删除*/
public void deleteMany(String[] resumeID){
resumeDao.deleteMany(resumeID);
}
controller层
/**
* 功能描述: 批量删除
* @auther: yxc
* @return: DataResult
* @date: 2019/12/20
*/
@ApiOperation(value = "批量删除简历")
@ApiImplicitParam(value = "批量删除",name="resumeID",dataType = "String",paramType = "query",allowMultiple =true )
@ResponseBody
@RequestMapping(value = "deleteMany",method = RequestMethod.GET)
public DataResult deleteMany(String[] resumeID){
DataResult result=new DataResult();
resumeService.deleteMany(resumeID);
result.setStatus(0);
result.setMsg("删除成功");
return result;
}
关于API注解,是基于swagger的一个使用工具,参考博文swagger的简单注解使用
最后就是配置sql语句了
<delete id="deleteMany" parameterType="String">
delete from hire_resume where resume_id in
<foreach item="resumeID" collection="array" open="(" separator="," close=")">
#{resumeID}
</foreach>
</delete>
学过数据库的应该都可以很快理解这段sql语句吧!循环遍历数组,将数组的元素放在一个in里面,这样就会删除in后面的所有数据 open和close表示开头和结尾:如
delete from hire_resume where resume_id in (1001,1002,1003)
其实批量删除相对而言还是挺简单的一个应用