Java day02

本文介绍了在开发员工管理系统中,包括新增员工接口的DTO设计、JSON数据接收、时间处理、密码加密、分页查询、动态SQL使用、SpringMVC扩展及禁用/编辑员工功能。同时提及了JWT和HTTP请求的相关知识点。
摘要由CSDN通过智能技术生成

Day02

一、新增员工

1. 需求分析和设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 代码开发

1. DTO

根据新增员工接口设计对应的DTO,来接收前端传入的数据。

当前端提交的数据和实体类中对应的属性差别比较大的时候,建议使用DTO来封装数据。

2. @RequestBody

前端post请求传过来的json格式的数据,用@RequestBody接收。

3. 对象属性拷贝
BeanUtils.copyProperties(employeeDTO, employee);
//属性名必须一致
4. 当前时间
LocalDateTime.now()
5. 密码加密
DigestUtils.md5DigestAsHex(PasswordConstant.DEFAULT_PASSWORD.getBytes());
6. TODO后续改进
// TODO 后续改进。。。
7. InsertSQL语句
@Insert("insert into employee(name, username, password) " +
            "values " +
            "(#{name}, #{username}, #{password})")

变量定义的时候用的驼峰命名法,数据库里是下划线命名法。

8. 接口调试

地址:http://localhost:8080/doc.html

9. JWT相关知识

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
客户端发起的每一次请求都是一个单独的线程。
在这里插入图片描述
在这里插入图片描述
可以计算这句代码的结果(debug的时候看一下值是多少)。

二、员工分页查询

2.1 需求分析与设计

在这里插入图片描述
需要传入的参数是:页码,每页的记录数和查询的员工姓名
在这里插入图片描述

2.1.1 Query

get请求,请求参数是Query,通过地址栏的问号传输。

2.2 代码实现

2.2.1 pagehelper
  1. 在pom文件中引入pagehelper依赖
    在这里插入图片描述#### 2.2.2 动态查询SQL
<select id="pageQuery" resultType="com.sky.entity.Employee">
        select * from employee
        <where>
            <if test="name != null and name != ''">
                and name like concat('%', #{name}, '%')
            </if>
        </where>
        order by create_time desc
    </select>

like是模糊查询
不需要再加limit关键词分页了,pagehelper动态插入该查询。

public PageResult page(EmployeePageQueryDTO employeePageQueryDTO) {
        //开始分页查询
        PageHelper.startPage(employeePageQueryDTO.getPage(), employeePageQueryDTO.getPageSize());
        Page<Employee> page = employeeMapper.pageQuery(employeePageQueryDTO);

        long total = page.getTotal();
        List<Employee> records = page.getResult();
        return new PageResult(total, records);
    }
2.2.2 对后端传向前端的数据进行统一的处理
/**
     * 扩展springMVC框架的消息转换器
     * @param converters
     */
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters)
    {
        log.info("扩展消息转换器。。。。");
        //创建一个消息转换器对象

        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        //需要为消息转换器设置一个对象转换器,对象转换器可以将Java对象序列化为json数据
        converter.setObjectMapper(new JacksonObjectMapper());
        //将自己的消息转换器加入容器中
        converters.add(0, converter);
    }

三、启用禁用员工账号

1. 路径参数

@PathVariable Integer status
2. 构造employee对象
//传统写法
Employee employee = new Employee();
employee.setStatus(status);
employee.setId(id);

Employee employee = Employee.builder()
							.status(status)
							.id(id)
							.build();

四、编辑员工

五、导入分类模块功能代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值