Spring Boot 项目6:用户注册接口开发的准备工作

131 阅读3分钟

写在前面

上一篇文章我们访问了项目的静态资源,这篇文章我们进行用户注册接口开发的准备工作

用户注册接口开发的准备工作

我们先了解一下用户注册接口开发的准备工作需要做哪些事:

  1. 创建数据表,即我们的用户表
  2. 创建实体类,即创建用户的实体类

创建用户表

用户表 t_user 有以下字段,前面 java 入门文章中已经写过如何创建用户表,不过这里比那时候多了 salt 字段,这个字段比较特殊,它是用在我们注册用户的时候,要对用户的密码进行加密,还有需要说一下的是我们的 is_delete 字段,改字段表示删除状态,就是用户的删除在后端这里其实是软删除,记录还在,只是标记了一下删除状态:

create table `t_user `
(
   uid int auto_increment comment '用户id',
   username varchar(20) not null comment '用户名',
   password char(32) not null comment '密码',
   salt char(36) null comment '盐值',
   phone varchar(20) null comment '手机号码',
   email varchar(30) null comment '电子邮箱',
   gender int null comment '性别0女1男',
   avatar varchar(50) null comment '头像',
   is_delete int null comment '删除状态0未删除1已删除',
   created_user varchar(20) null comment '创建人',
   created_time datetime null comment '创建时间',
   modified_user varchar(20) null comment '最新修改人',
   modified_time datetime null comment '最新修改时间',
   constraint `t_user _pk`
      primary key (uid)
);

create unique index `t_user _username_uindex`
   on `t_user ` (username);

创建实体类的基类

上面的用户表中我们有公用的字段:created_user、created_time、modified_user和modified_time,这部分同样的代码我们可以放在一个实体类的基类中,我们在store目录下新建类,取名为entity.BaseEntity,编写代码如下:

package com.cy.store.entity;

import java.io.Serializable;
import java.util.Date;

/** 实体类的基类 */
public class BaseEntity implements Serializable {
    private String createdUser;
    private Date createdTime;
    private String modifiedUser;
    private Date modifiedTime;
}

如此我们的私有化变量就定义好了,还记得我们在Java入门中用的 @Data 注解么,这里我们就不用了,我们把所有方法写出来,可以和前面的做个对比,下面的代码我们可以右键-生成,然后选中所有字段都生成:

image.png

最后生成的代码如下:

...
/** 实体类的基类 */
public class BaseEntity implements Serializable {
    ...
    /** 右键-生成-Getter和Setter */
    public String getCreatedUser() {
        return createdUser;
    }

    public void setCreatedUser(String createdUser) {
        this.createdUser = createdUser;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public String getModifiedUser() {
        return modifiedUser;
    }

    public void setModifiedUser(String modifiedUser) {
        this.modifiedUser = modifiedUser;
    }

    public Date getModifiedTime() {
        return modifiedTime;
    }

    public void setModifiedTime(Date modifiedTime) {
        this.modifiedTime = modifiedTime;
    }

    /** 右键-生成-equals和hashCode */
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof BaseEntity)) return false;
        BaseEntity that = (BaseEntity) o;
        return getCreatedUser().equals(that.getCreatedUser()) && getCreatedTime().equals(that.getCreatedTime()) && getModifiedUser().equals(that.getModifiedUser()) && getModifiedTime().equals(that.getModifiedTime());
    }

    @Override
    public int hashCode() {
        return Objects.hash(getCreatedUser(), getCreatedTime(), getModifiedUser(), getModifiedTime());
    }

    /** 右键-生成-toString */
    @Override
    public String toString() {
        return "BaseEntity{" +
                "createdUser='" + createdUser + ''' +
                ", createdTime=" + createdTime +
                ", modifiedUser='" + modifiedUser + ''' +
                ", modifiedTime=" + modifiedTime +
                '}';
    }
}

创建用户的实体类

在intity目录下新建User类,创建的用户实体类需要继承基类,代码如下,Getter和Setter,equals和hashCode,toString方法代码就不贴了,和上面基类一样自动生成一下就行:

package com.cy.store.entity;

import java.io.Serializable;

/** 用户实体类 */

public class User extends BaseEntity implements Serializable {
    private Integer uid;
    private String username;
    private String password;
    private String salt;
    private String phone;
    private String email;
    private Integer gender;
    private String avatar;
    private Integer isDelete;
    
    /** 右键-生成-Getter和Setter,equals和hashCode,toString */
    ...
}

写在最后

以上就是用户注册接口开发的准备工作的全部内容