Java SpringBoot框架Web开发实战02--部门管理功能
1. 部门管理搭建
在pojo包里面创建2个java实体类,一个是Dept(也就是部门),第二个是Result类,值得一提的是,这个Result类是用来封装接口的统一返回格式,通常包含状态码、消息和实际数据。也是一个小小的规范。
Dept.java
这里就体现出lombok的优势了,@Data注解可以生成get和set方法,@NoArgsConstructor @AllArgsConstructor分别是无参构造和有参构造。注意这里的数据名称要和数据库里面的名称伊一样,不然后面返回的值会是null(当然如果不一样后续可以通过手动或者取别名的方法)
package com.yourena.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Dept {
private Integer id;
private String name;
private LocalDateTime create_Time;
private LocalDateTime update_Time;
}
Result.java
package com.yourena.pojo;
import lombok.Data;
import java.io.Serializable;
/**
* 后端统一返回结果
*/
@Data
public class Result {
private Integer code; //编码:1成功,0为失败
private String msg; //错误信息
private Object data; //数据
public static Result success() {
Result result = new Result();
result.code = 1;
result.msg = "success";
return result;
}
public static Result success(Object object) {
Result result = new Result();
result.data = object;
result.code = 1;
result.msg = "success";
return result;
}
public static Result error(String msg) {
Result result = new Result();
result.msg = msg;
result.code = 0;
return result;
}
}
在service包下创建接口以及这个接口的实现类,在mapper包下创建DeptMapper来管理部门数据,controller包下创建DeptController,我们部门管理功能的项目框架就搭建好了。

2.接口开发(部门查询)
我们进行部门查询的功能开发前首先要明确实现的逻辑,mapper是用来获取数据库的数据,service是逻辑实现层,用于对数据进行处理,controller适用于接受请求返回数据。那我们的整体逻辑就是:1.通过mapper来执行SQL语句来查询所有部门数据。2.在service里通过调用mapper来获取数据并对其进行处理(这里仅查询无需处理)3.在controller里返回数据。
首先是在mapper里面进行SQL语句来获取数据,这里的SQL语句比较简单,可以直接使用注解来编写,若要实现复杂的SQL语句,最好是用XML进行映射。
package com.yourena.mapper;
import com.yourena.pojo.Dept;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface DeptMapper {
@Select("select id,name,create_time,update_time from dept order by update_time")
List<Dept> findAll();
}
在service里进行数据的逻辑处理,首先要获取数据,以下分别是接口和接口实现类
package com.yourena.service;
import com.yourena.pojo.Dept;
import java.util.List;
public interface DeptService {
List<Dept> findAll();
}
package com.yourena.service.Impl;
import com.yourena.mapper.DeptMapper;
import com.yourena.pojo.Dept;
import com.yourena.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class DeptServiceImpl implements DeptService {
@Autowired
private DeptMapper deptMapper;
@Override
public List<Dept> findAll() {
return deptMapper.findAll();
}
}
这里使用@Autowired用于自动装配依赖对象。它可以标注在字段、构造方法、Setter 方法上,Spring 容器会自动查找匹配的 Bean 并注入。这样注入DeptMapper之后,就可以调用里面的findAll方法来获取数据
之后在controller里面就可以调用service来返回数据,最终返回的值为Result类型,通常服务端返回的类型都是Result类型
package com.yourena.controller;
import com.yourena.pojo.Dept;
import com.yourena.pojo.Result;
import com.yourena.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class DeptController {
@Autowired
private DeptService deptService;
@GetMapping ("/depts")
public Result list(){
System.out.println("查询所有部门信息");
List<Dept> deptlist = deptService.findAll();
return Result.success(deptlist);
}
}
下面是用APIFox进行的测试,可以看到服务端成功返回了需要的数据

总结一下逻辑顺序:mapper用来获取数据,service通过mapper获取数据后对数据进行逻辑处理,controller是通过service来返回数据。
更多推荐




所有评论(0)