开发用户注册接口

用户表基本结构 

用户头像存放在三方服务器,显示三方服务器地址 

Java采访驼峰命名方法,数据库采用下划线命名法。

 自动生成get、set方法的工具

lombok:在编译阶段,为实体类自动生成setter getter toString

使用步骤:

pom文件中引入依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

在实体上添加注解 

测试是否添加 

等待编译完成找到target文件夹

 在三个实体类都加上注解@Data

接口返回的格式相同,单独创建一个result的实体类

返回类型统一为result

出现报错

添加注解

无参数的构造方法和有参数的构造方法 

三层架构

从controller这层开始编写

编写UserController

package com.wxt.controller;

import com.wxt.pojo.Result;
import com.wxt.pojo.User;
import com.wxt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;
//    注册接口的请求方式是post,访问路径是register
    @PostMapping("/register")
    public Result register(String username,String password){

//        查询用户
//        alt+enter导入user文件
        User u=userService.findByUserName(username);
        if(u == null){
//        没有占用
//        注册
            userService.register(username,password);
            return Result.success();
        }else {
//            占用
            return Result.error("用户名已被占用");
        }
    }
}

 写完后会发现findByUserName,register报红

原因是service层为提高这样的方法

把光标放在标红处,alt+enter自动在service生成方法

实体类并没有实现这两个方法

把光标放在标红处,alt+enter自动快速生成方法

package com.wxt.service.impl;

import com.wxt.mapper.UserMapper;
import com.wxt.pojo.User;
import com.wxt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

//把当前类对象注册到容器里面
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public User findByUserName(String username) {
        User u=userMapper.findByUserName(username);
        return u;
    }
    @Override
    public void register(String username, String password) {
//        加密
    }
}

注册不能直接调用userMapper,首先需要对密码做一个加密的处理

密码加密 (Md5Util)

把Md5Util放在utils工具类

提供了getMD5String方法,会把明文密码转化成密文密码

继续编写Mapper层代码

@Mapper
public interface UserMapper {

//    根据用户名查找用户
    @Select("select * from user where username=#{username}")
    User findByUserName(String username);
//    添加
    @Insert("insert into user(username,password,create_time,update_time)"+
    "values(#{ username },#{password},now(),now())")
    void add(String username, String password);
}

Postman进行测试 

返回结果

控制台提示信息

 在Result类加上注解

重新启动项目,进行测试,测试成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值