今天学习四块技术内容
- 批量删除功能
- 修改功能->回显和修改
- 高级异常
批量删除功能
获取配置文件的值,第二种方式遇到的问题
原因:看报错问题不要慌,看最后一行的问题,点到问题行发现对应注解的变量没写进方法里面,所以获取不到值。放进方法中即可获取到值
修改员工信息功能
1.修改信息时的信息回显功能
第一步:涉及到两张表 emp emp_expr,先设计sql把两张表关联起来一起查询
第二步:两张表的sql关联语句拿到了,接下来将sql语句放入mapper层使数据库中的数据映射到实体类中,配置mapper.xml
其中需要注意两个属性★★★
1.id值为service层传过来的id
2.要接收一个集合,此处不再用resultType而是用resultMap
(1)resultMap集合标签中的 id为自己指定的集合名字 type为修改信息映射的实体类表
(2)主键id属性column是字段,property属性是实体类表的成员变量,一一对应
(3)主键id较为特殊用<id>
,其余全用<result>
(4)EmpExpr是封装成集合放在Emp中一起回显,所以要特殊处理
mapper.xml总结:
两表关联的sql语句不要写错
mapper.xml中的标签记住★★★
第三步:就是三层架构的东西了:
其中需要记住的是->Controller层请求时的路径/{id}和路径参数@PathVariable★★★
中间遇到的问题
高级异常:
俩注解@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;
推荐阅读:
文章有(0)条网友点评