在实际工作中需要通过springboot写接口实现功能供前端调用。由于刚开始接触springboot对各层功能并不明确,无从下手写接口。因此在了解基本原理可以开始写接口后,记录一下具体实现过程,方便和我一样刚开始接触springboot但是不知道如何写后端接口的人参考。
首先介绍一下各层的定位
-
model层
-
model层对应的就是数据库实体层,一般model层中一个实体类对应一张数据库表,类中的
属性和表中的字段一一对应
-
-
dao层
- dao层也称为mapper层,其作用是访问数据库,向数据库发送sql语句,完成对数据库的增删改查以及其他数据库操作指令
-
service层
- service层即业务逻辑层,具体的功能实现应该在此处编写。
- service层可以调用mapper层的方法,接收对数据库操作语句获取的结果,实现项目的功能。
-
controller层
- controller层即控制层,其主要功能是接受前端请求,调用service层执行功能逻辑代码,最后将结果返回给前端。
然后介绍一下如何写一个接口,以查询一张数据库表的数据为例
数据库中现在有一张表
如何获取到表中数据?
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文件映射数据库表,并编写数据库操作语句
<?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.启动项目,前端调用接口查看结果
成功获取到数据库表中数据!!!
希望以上内容能够帮助和我一样初次接触springboot需要写后端接口的各位。
感谢大家观看!!比心