1. 装备环境

在DataBase里新建数据库,创立关联的表结构与数据

springboot项目的创立,选择maven

在java包下com.目录

根据Spingboot的Web结构的环境树立、前后端交互

用MVC三层结构解耦

根据Spingboot的Web结构的环境树立、前后端交互

1、dao(mapper)层:数据访问层 持久层

dao层归于一种比较底层,比较根底的操作,详细到对于某个表的增修改查,也便是说某个DAO一定是和数据库的某一张表一 一对应的,其间封装了增修改查基本操作,主张DAO只做原子操作,增修改查。

担任与数据库进行联络的一些使命都封装在此,dao层的规划首先是规划dao层的接口,然后在Spring的装备文件中界说此接口的完成类,然后就能够再模块中调用此接口来进行数据事务的处理,而不必关怀此接口的详细完成类是哪个类,显得结构十分明晰,dao层的数据源装备,以及有关数据库连接参数都在Spring装备文件中进行装备。

2、service层:服务层

大略的了解便是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需求事物操控。

service层主要担任事务模块的使用逻辑使用规划。同样是首先规划接口,再规划其完成类,接着再Spring的装备文件中装备其完成的关联。这样咱们就能够在使用中调用service接口来进行事务处理。service层的事务实,详细要调用已经界说的dao层接口,封装service层事务逻辑有利于通用的事务逻辑的独立性和重复使用性。程序显得十分简洁。

3、controller层

Controler担任恳求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。

controller层担任详细的事务模块流程的操控,在此层要调用service层的接口来操控事务流程,操控的装备也同样是在Spring的装备文件里进行,针对详细的事务流程,会有不同的操控器。咱们详细的规划进程能够将流程进行抽象归纳,规划出能够重复使用的子单元流程模块。这样不只使程序结构变得明晰,也大大减少了代码量。

联系

Service层是树立在DAO层之上的,树立了DAO层后才能够树立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要供给接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的事务处理办法。

根据Spingboot的Web结构的环境树立、前后端交互

Mapper层也是完成了数据访问和交流

要用@Mapper注解 也能够用注解来操作数据库如select delect put update

import com.kyle.pojo.Dept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface DeptMapper {
    @Select("select * from dept")
    public List<Dept> listDept();
}

Service层

接口及完成类命名方法,接口XXXService,完成类:XXXServiceImpl。

完成类XXXServiceImpl需添加注解@Service,并指明称号,如@Service(“companyService”);

在完成类中,通过注解@Autowired,注入数据

@Service
public class DeptServiceImpl implements DeptService {
    @Autowired
    private DeptMapper deptMapper;
    @Override
    public List<Dept> listDept() {
        return deptMapper.listDept();
    }
}

Controller层

留意日志的输出

@RequestMapping恳求

恳求的地址路径 “/***”

@Slf4j
@RestController
public class DeptController {
    @Autowired
    private DeptService deptService;
    //规范日志输出格式
    //private static Logger log = (Logger) LoggerFactory.getLogger(DeptController.class);
    //或许用注解@Slf4j
    //@RequestMapping(value = "/depts",method = RequestMethod.GET)//指定恳求方法GET
    //或许用
    @GetMapping("/depts")
    public Result list() {
        List<Dept> deptlist = deptService.listDept();
        log.info("查询悉数部门数据");
        return Result.success(deptlist);
    }
}

根据Spingboot的Web结构的环境树立、前后端交互