打开原教程视频
注:本人是渣渣,有错请谅解。
功能实现
前提:在第五天实现了批量删除功能,但是可以看出传输数据只有用户的id,当我们需要使用用户的其它数据呢?一个办法是继续使用上一天的方法将数据拼接然后用多个数组来接收,显然,这个办法很麻烦。试想一下,能不能将批量的数据封装成一个个User实体对象,然后用一个集合来接收呢?答案是肯定的,可以使用spring MVC 的集合类型参数绑定实现该操作。
1、创建集合包装类Data
public class Data {
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
private List<User> users = new ArrayList<User>();
}
2、修改异步请求的数据类型
var jsonObject = {};
$.each(selectedCheckbox,function (index,user) {
jsonObject["users["+index+"].id"]=user.id;
jsonObject["users["+index+"].username"]=user.name;
});
3、修改Controller相关方法
/**
* 批量删除用户
* @param data
* @return
*/
@RequestMapping(value = "/doDeleteBatchUser")
public @ResponseBody Object doDeleteBatchUser(Data data){
AjaxResult result = new AjaxResult();
try {
Integer count = userService.deleteUsers(data);
if (count==data.getUsers().size()){
result.setSuccess(true);
}else {
result.setSuccess(false);
}
}catch (Exception e){
e.printStackTrace();
result.setMessage("出现异常,请重新尝试!");
result.setSuccess(false);
}
return result;
}
4、补充service、dao层的接口及实现类
Integer deleteUsers(Data data);
5、补充Mapper的sql语句
<delete id="deleteUsers">
delete from t_user where id in
<foreach collection="users" open="(" close=")" separator="," item="user">
#{user.id}
</foreach>
</delete>
6、测试效果
数据批量删除成功。