今天给大家介绍的是字典维护中的批量删除,页面列表图展示如下:
下面直接上前端逻辑代码:
$("#deleteView").click("click", function() {//绑定删除按扭
var cbox=grid.getSelectedCheckbox();
if (cbox.length == 0) {
parent.$.ligerDialog.alert("请选择删除项");
return;
}
parent.$.ligerDialog.confirm('删除后不能恢复,确定删除吗?', function(confirm) {
if (confirm) {
$.ajax({
type: "post", //使用get方法访问后台
dataType: "json", //json格式的数据
async: false, //同步 不写的情况下 默认为true
url: rootPath + '/background/dic/deleteByIds.html', //要访问的后台地址
data: {ids:cbox.join(",")}, //要发送的数据
success: function(data){
if (data.flag == "true") {
parent.$.ligerDialog.success('删除成功', '提示', function() {
loadGird();//重新加载表格数据
});
}else{
parent.$.ligerDialog.warn("删除失败");
}
}
});
}
});
});
逻辑说明:
1、首先判断是否选择了删除项,若没有选择,则提示至少选择一条记录。
2、选择删除项后,提示是否真的删除,若确定删除,则调用后台deleteByIds接口。
3、在处理多条记录时,用逗号拼接上送。
后台逻辑代码:
/**
* 删除字典
*/
@ResponseBody
@RequestMapping("deleteById")
public Map<String, Object> deleteById(Model model, String ids) {
Map<String, Object> map = new HashMap<String, Object>();
try {
String id[] = ids.split(",");
for (String string : id) {
if(!Common.isEmpty(string)){
dicService.delete(string);
}
}
map.put("flag", "true");
} catch (Exception e) {
map.put("flag", "false");
}
return map;
}
逻辑说明:
1、对上送ids进行逗号分隔,对于单个不为空的数据进行调用删除服务。
2、删除服务调用时mapper中的delete。
mapper写法:
<delete id="delete" parameterType="String">
delete from dic where id=#{id}
</delete>
另外:
1、这种写法比较low,大家可以采用集合的方式更好的处理批量删除。
2、在mybatis中采用foreach 来处理集合。
改造后的代码:
/**
* 删除字典
*/
@ResponseBody
@RequestMapping("deleteByIds")
public Map<String, Object> deleteByIds(Model model, String ids) {
Map<String, Object> map = new HashMap<String, Object>();
try {
String[] idList = ids.split(",");
map.put("flag", dicService.deleteBatch(idList));
} catch (Exception e) {
map.put("flag", false);
}
return map;
}
对应mapper:
<delete id="deleteBatch" parameterType="java.lang.String">
DELETE FROM sys_dic WHERE id in
<foreach collection="array" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
软件定制及其他业务
请加微信号:13128600812
公众号: