黑马程序员 2023JavaWeb 教程教学管理系统部门管理,员工管理功能实现笔记。

通过idea搭建具有三层架构的springboot项目

开发项目的三层架构
其中的Dao层用Mapper标识,构造出来的项目结构大体如下
在这里插入图片描述

准备工作

通过application.yml文件配置数据库连接以及mybatis

spring:
  #数据库连接信息
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.100.19:3306/tlias
    username: root
    password: ***********
#mybatis配置信息
mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true

yml配置文件相较于properties的优点

在这里插入图片描述

根据接口文档分别实现功能

controller层:主要用于接收请求,响应数据

参数的传递

根据RESTful规范,前端传递过来的请求方式大概分为GET,POPST,PUT,DELETE等几种
在(只)接收这几种请求方式时候,对应几种不同的注解。

@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
//这几个注解都加上了@RequestMapping注解

这几种,在这几个注解后面可以加括号指定访问路径,例如

@RequestMapping("/depts")

注解可以加在方法之前,也可以加在类之前。
加了这种注解的类可以简化方法的注解例如

@RestController
public class DeptController {
   

    //private static Logger log = LoggerFactory.getLogger(DeptController.class);

    //@RequestMapping(value = "/depts",method = RequestMethod.GET)
    /**
     * 查询部门
     */
    @Autowired
    private DeptService deptService;
    @GetMapping("depts/)
    public Result list(){
   
        log.info("查询全部部门的数据");
        List<Dept> deptList =  deptService.list();
        return Result.success(deptList);
    }
  }

可以简化为

//在类上面添加了@RequestMapping注解
@RequestMapping("/depts")
@RestController
public class DeptController {
   

    //private static Logger log = LoggerFactory.getLogger(DeptController.class);

    //@RequestMapping(value = "/depts",method = RequestMethod.GET)
    /**
     * 查询部门
     */
    @Autowired
    private DeptService deptService;
    @GetMapping
    public Result list(){
   
        log.info("查询全部部门的数据");
        List<Dept> deptList =  deptService.list();
        return Result.success(deptList);
    }
 }
接收前端发来的请求参数

前端发来的请求参数可以分为以下几种
1,无请求参数
2,路径参数 例如/depts/{id}
3,json格式的参数

在这里插入图片描述

接收路径参数示例代码

@DeleteMapping("/{id}")
    public Result delete(@PathVariable Integer id){
   
        log.info("通过id删除部门:{}",id);
        deptService.delete(id);
        return Result.success();
    }

方法在接收参数里面使用了@PathVariable注解

在接收json参数,可以定义多个变量进行接收,

@GetMapping
    public Result page(String name, Short gender,
                       @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
                       @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end,
                       @RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "10") Integer pageSize) {
   
        log.info("分页查询,参数:{},{},{},{},{},{}", name, gender, begin, end, page, pageSize);
        PageBean pageBean = empService.page(name, gender, begin, end, page, pageSize);
        return Result.success(pageBean);
    }

@DateTimeFormat注解可以指定时间格式
需要注意的是,变量的名称必须和json中传递过来的参数一致。如果不一致的话,传递参数会失败。可以使用@RequestParam(“在此指定参数名称” Object object ),这个注解中还可以指定参数的默认值
在变量比较多的时候

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值