新增员工
- 首先在Service接口定义方法,不需要有返回值
为什么是Dto,因为Dto类是当前端传来vo数据,我们提取vo中的数据到dto中,再将dto的数据处理后全部移动到entity中进行数据的保存。
2,在Mapper添加SQL语句
SQL语句很简单
3.编写Service的实现类
这里拷贝的部分需要复习,创建了一个empoyee对象,设置了一些值
密码加密部分需要多练
4.编写控制层
控制层比较简单,要有返回值,注意添加Api注解
用户名重复解决办法
录入的用户名已存,抛出的异常后没有处理
所报异常
解决方案
获取当前登入员工id方法
后续请求中,前端会携带JWT令牌,通过JWT令牌可以解析出当前登录员工id:
解析出登录员工id后,如何传递给Service的save方法?
ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。
浏览器发起了添加员工的请求,进入服务器后依次进过过滤器,拦截器,Controler,Sevice等模块,且属于同一个线程,意这几个模块中获取的线程ID是一样的
分别在service controller 拦截器分别打出 ThreadLocal ID
客户端发起的每一次请求都是一个线程
代码实现
查询所有员工 分页实现
首先编写一Service接口
PageResult层:里面有两条数据
2.编写mapper层
编写xml文件
编写impl层
编写控制层
解决操作时间格式不清晰
在WebMvcConfiguration中扩展SpringMVC的消息转换器,统一对日期类型进行格式处理
消息转换器MessageConverter
员工账号启/禁用
第一步,编写service接口
这里启用/禁用账号本质上就是修改状态,所以需要两个参数,状态和id
第二步,编写mapper
第三步。编写sql语句
第四步,编写impl
第五步,编写controller
编辑员工
编辑员工耗时最长
第一步先编写service层
要先根据id查询员工,再进行修改
第二,编写mapper层
因为前面已经写过修改的语句了,所以这里只要写查询
第三,编写impl
第四,编写controller