接上一个批量新增后,再次给大家带来的是删除和批量删除的方法
先说删除吧,删除只是根据id来说的
上代码了~~~~
controller层:
@DeleteMapping(value = "/deletebyId")
@ApiOperation(value = "事务删除", notes = "根据id进行删除")
public void deletebyId(Integer id) {
demoService.deleteById(id);
}
service层:
public void deleteById(Integer id) {
demoRepository.deleteById(id);
}
repository层:
是不是认为完了? 确实是完了,就这么简单,就这么尿性。。短短几行就搞定了。 调的还是内部的固有方法。
是不是没看完?
那就在看看批量删除吧~~~*
controller层:
@DeleteMapping(value = "String/batch/deletebyId")
@ApiOperation(value = "批量删除(事务删除)", notes = "根据id进行批量删除")
public Map<String, Object> deletes(String id) {
//replaceAll() 方法使用给定的参数 replacement 替换字符串所有匹配给定的正则表达式的子字符串。
//regex -- 匹配此字符串的正则表达式. newChar -- 用来替换每个匹配项的字符串 也叫后者代替前者
String t = id.replaceAll("\\\"", "");
// String replaceAll = t.replace("[", "").replace("]", "");
Map<String,Object> resultMap = new HashMap<>();
String[] str = t.split(",");
List<Integer> list = new ArrayList<>();
for (String l : str) {
Integer i = Integer.valueOf(l);
list.add(i);
}
Integer map = demoService.deleteSysAdminUser(list);
System.out.println("map = " + map);
if (map == 0){
resultMap.put("code", "0001");
resultMap.put("message", "您删除的数据中,有不存在的数据");
}else {
resultMap.put("code", "0000");
resultMap.put("message", "删除成功");
}
return resultMap;
}
需要说明一下。你若是Integer类型的id也可以在代码开始时,将整数类型的转化为String类型的,也是可用的。
service层:
public Integer deleteSysAdminUser(List<Integer> id) {
Integer map = demoRepository.deleteSysAdminUser(id);
return map;
}
repository层:
@Modifying //一般在删除或者修改的时候用 用来标明是一个删除或者修改的标识
@Transactional
@Query("delete from SysAdminUser where id in (:id)")
Integer deleteSysAdminUser(@Param("id") List<Integer> id);
这个时候就要使用原生sql给它注入了。。。
今天的先到这里。。有问题的可以留言哈。。。。