Springboot如何后端写接口实现功能

970 阅读2分钟

在实际工作中需要通过springboot写接口实现功能供前端调用。由于刚开始接触springboot对各层功能并不明确,无从下手写接口。因此在了解基本原理可以开始写接口后,记录一下具体实现过程,方便和我一样刚开始接触springboot但是不知道如何写后端接口的人参考。

首先介绍一下各层的定位

  • model层

    • model层对应的就是数据库实体层,一般model层中一个实体类对应一张数据库表,类中的

      属性和表中的字段一一对应

  • dao层

    • dao层也称为mapper层,其作用是访问数据库,向数据库发送sql语句,完成对数据库的增删改查以及其他数据库操作指令
  • service层

    • service层即业务逻辑层,具体的功能实现应该在此处编写。
    • service层可以调用mapper层的方法,接收对数据库操作语句获取的结果,实现项目的功能。
  • controller层

    • controller层即控制层,其主要功能是接受前端请求,调用service层执行功能逻辑代码,最后将结果返回给前端。

然后介绍一下如何写一个接口,以查询一张数据库表的数据为例

数据库中现在有一张表

image-20220206102008976.png

如何获取到表中数据?

1.首先在model层建立一个类,类属性与表字段对应

public class Department {
    private Integer deptId;
​
    private String deptName;
​
    public Integer getDeptId() {
        return deptId;
    }
​
    public void setDeptId(Integer deptId) {
        this.deptId = deptId;
    }
​
    public String getDeptName() {
        return deptName;
    }
​
    public void setDeptName(String deptName) {
        this.deptName = deptName == null ? null : deptName.trim();
    }
}

2.在resource中的mapper层编写相应xml文件映射数据库表,并编写数据库操作语句

image-20220206102538063.png

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dp.crud.dao.DepartmentMapper">
  <resultMap id="DepartmentMap" type="com.dp.crud.bean.Department">
    <id column="dept_id" jdbcType="INTEGER" property="deptId" />
    <result column="dept_name" jdbcType="VARCHAR" property="deptName" />
  </resultMap>
  <select id="selectDept" parameterType="com.dp.crud.bean.Department" resultMap="DepartmentMap">
    select dept_id,dept_name from tbl_dept
  </select></mapper>

需要注意的是右侧xml文件resultmap里的column即为数据库表中字段名property即为java中与之对应的变量名,不要搞混。

3.在mapper层中写方法名

public interface DepartmentMapper {
​
    List<Department> selectDept();
​
}

4.在service层调用mapper方法,获取数据库查询结果

@Service
public class DepartmentService {
​
    @Autowired
    private DepartmentMapper departmentMapper;
​
    public List<Department> getDepts() {
​
        List<Department> list = departmentMapper.selectDept();
        return list;
    }
​
}

5.在controller层调用service方法并写接口名称

public class DepartmentController {
​
    @Autowired
    private DepartmentService departmentService;
​
    /**
     * 返回所有的部门信息
     */
    @RequestMapping("/depts")
    @ResponseBody
    public List<Department> getDepts() {
        //查出的所有部门信息
        List<Department> list = departmentService.getDepts();
        return list;
    }
​
}

@RequestMapping(" /depts") 就是对于接口名称的定义,你也可以将其改为任何名字

6.启动项目,前端调用接口查看结果

image-20220206103334874.png

成功获取到数据库表中数据!!!

希望以上内容能够帮助和我一样初次接触springboot需要写后端接口的各位。

感谢大家观看!!比心