Java SpringBoot框架Web开发实战03--部门删除功能
部门删除功能还是一样的逻辑:mapper获取数据,service处理,controller响应。前面没有提到的一点,在开发时要看接口文档,所有的都会在接口文档里面,比如我为什么用“/depts”
一般开发时为了避免每个程序员命名习惯的不同而导致开发错误,一般会把每个功能的请求方式设置为不同,比如查询部门就用GET,删除部门就用DELETE,添加部门就用POST。不然在删除员工时,有人用“dept/name=Tom”,有人用"dept/username=Tom",这样就可以统一规范直接写“dept/Tom”然后请求方式是DELETE就可以了。
首先我们要先获取“DELETE http://localhost:8080/depts?id=1”里的id的值,这边有三种方法。
方法一:使用HttpServletRequest来获取参数
要注意的是,使用这个方法是,返回的是String类型,所以要转换成Integer类型
@DeleteMapping("/depts")
public Result delete(HttpServletRequest request){
String idStr = request.getParameter("id");
int id = Integer.parseInt(idStr);
System.out.println("删除id为"+id+"的部门信息");
return Result.success();
}
方法二:使用@RequestParam注解来获取参数
方法一首先要获取一个String类型,再转换成int类型,太麻烦了,使用@RequestParam注解就可以直接完成,使用方法为:@RequestParam("参数名") 数据类型 变量名。这样代码会简介很多。
@DeleteMapping("/depts")
public Result delete(@RequestParam("id") Integer id){
System.out.println("删除id为"+id+"的部门信息");
return Result.success();
}
方法三:使用形参来获取参数
这也是最常用的方法,只要形参名和参数名是一样,注解可以直接省略,效果一样。
@DeleteMapping("/depts")
public Result delete(Integer id){
System.out.println("删除id为"+id+"的部门信息");
return Result.success();
}
获取完参数之后,我们就可以进行数据库操作了,和查询功能大差不差。
因为是删除操作,所以Result里面不需要返回data,直接调用success的无参构造就可以了
@DeleteMapping("/depts")
public Result delete(Integer id){
deptService.delete(id);
return Result.success();
}
然后在DeptService.java里面创建delete的方法,直接“ctrl + i”进行构造。
void delete(Integer id);
之后就需要在实现类里面来实现这个方法,这个方法是干什么的呢?没错,需要调用mapper里面的数据库操作方法来删除部门。
DeptServiceImpl.java
@Override
public void delete(Integer id) {
deptMapper.deleteById(id);
}
就差最后一步了,DeptMapper里面没有deleteById()这个方法,创造一个。
@Delete("delete from dept where id=#{id}")
void deleteById(Integer id);
这样删除部门的操作就完成了,通过APIFox进行调试后也是成功执行。

更多推荐




所有评论(0)