工程框架
controller层是控制层,用于请求和响应控制,负责前后端交互。接收前端请求,调用service层,接收service层返回的数据,最后返回具体的页面和数据到客户端。
Service层是业务逻辑层,主要通过调用DAO(mapper)层的接口,接收DAO层返回的数据,完成项目的基本功能设计。
DAO层是数据持久层,也被称为mapper层,主要负责访问数据库,向数据库发送sql语句,完成增删改查任务。主要通过定义继承类的接口来实现。
entity层为数据库实体层,一般一个实体类对应数据库中的一张数据表,类中的属性与数据表中的字段一一对应。
DTO层是数据传输层,用于屏蔽entity层,将前端所需数据重新进行定义和封装。
VO层是视图层,通常用于前端页面输出或输入数据的定义和封装。
MyBatis Builder
MyBatis Builder是一个集成了MyBatis Generator的免费图形化工具。插件可以自动生成配套的DAO层(mapper)接口、DO(entity)实体与mapper.xml。
组件使用
lombok组件
本案例实现了insert功能,即向数据库中插入一条数据。
VO层
前端传入的数据先经VO层进行参数校验(下一节介绍),通过校验后的参数存入DTO层,供后续service层进行调用。
DTO层
前端传入的数据先经VO层进行参数校验(下一节介绍),通过校验后的参数存入DTO层,供后续service层进行调用。在本项目中,DTO层(数据传输层)中的TestDTO.class只对表内字段进行了简单封装。
@Data
public class TestDTO {
private String id;
private String chClientName;
private String createTime;
}
Service层
在Service层定义一个insert方法,实现向数据表添加一行数据的功能。
传入参数为DTO层对象,利用get和set方法将数据转为entity层对象。
最后将entity层的Test类型对象传入Mapper层的insert方法中
Controller层
@RestController由web服务组件提供,标明此处为SpringMVC Controller对象,并且该方法直接返回数据给前端,搭配@RequestMapping使用。@RestController = @Controller + @ResponseBody,具体区别可以参考 https://blog.csdn.net/u010412719/article/details/69710480。
@RequestBody由web服务组件提供,主要用来接收前端传递给后端的json字符串中的数据(请求体中的数据);使用@RequestBody接收数据时,前端不能使用GET方式提交数据(因为GET方式无请求体),而是使用POST方式。
参数校验组件
VO层
@CheckV注解由参数校验parameter check组件提供,用于设定具体的参数校验规则。
Controller层
如果程序能通过if判断语句,则说明入参通过了参数校验,那么就将VO层的数据放进DTO层,service层从DTO层调取数据