今天学习四块技术内容

  • 批量删除功能
  • 修改功能->回显和修改
  • 高级异常

批量删除功能

获取配置文件的值,第二种方式遇到的问题
day04员工删除功能和修改功能、异常处理和员工信息统计
原因:看报错问题不要慌,看最后一行的问题,点到问题行发现对应注解的变量没写进方法里面,所以获取不到值。放进方法中即可获取到值

修改员工信息功能

1.修改信息时的信息回显功能

第一步:涉及到两张表 emp emp_expr,先设计sql把两张表关联起来一起查询
day04员工删除功能和修改功能、异常处理和员工信息统计
第二步:两张表的sql关联语句拿到了,接下来将sql语句放入mapper层使数据库中的数据映射到实体类中,配置mapper.xml
day04员工删除功能和修改功能、异常处理和员工信息统计
其中需要注意两个属性★★★
1.id值为service层传过来的id
2.要接收一个集合,此处不再用resultType而是用resultMap
day04员工删除功能和修改功能、异常处理和员工信息统计
(1)resultMap集合标签中的 id为自己指定的集合名字 type为修改信息映射的实体类表
(2)主键id属性column是字段,property属性是实体类表的成员变量,一一对应
(3)主键id较为特殊用<id>,其余全用<result>
(4)EmpExpr是封装成集合放在Emp中一起回显,所以要特殊处理
day04员工删除功能和修改功能、异常处理和员工信息统计
day04员工删除功能和修改功能、异常处理和员工信息统计
mapper.xml总结:
两表关联的sql语句不要写错
mapper.xml中的标签记住★★★
第三步:就是三层架构的东西了:
其中需要记住的是->Controller层请求时的路径/{id}和路径参数@PathVariable★★★
day04员工删除功能和修改功能、异常处理和员工信息统计
中间遇到的问题

高级异常:
俩注解@RestControllerAdvice 和 @ExceptionHandler

1.case流程控制语句语法:
语法一 -> case when cond1 then res1[when cond2 then res2]else res end
如:

SELECT
case when job=1 then '班主任'
     when job=2 then '讲师'
     when job=3 then '学工主管'
     when job=4 then '教研主管'
     when job=5 then '咨询师'
     ELSE '其他' END job
,COUNT(*) nums FROM emp GROUP BY emp.job ORDER BY nums desc;

语法二(适用于等值匹配) -> case expr when val1 then res1 [when val2 then res2] else res end ;
如:

SELECT
case job
    when 1 then '班主任'
    when 2 then '讲师'
    when 3 then '学工主管'
    when 4 then '教研主管'
    when 5 then '咨询师'
     ELSE '其他' END job
,COUNT(*) nums FROM emp GROUP BY emp.job ORDER BY nums desc;

2.当有性别这种的时候直接用 if函数比case流程控制函数更简单
如:

ELECT if(gender=1,'男','女') gender,
COUNT(*) nums FROM emp GROUP BY emp.gender;