【第1章】SpringBoot实战篇之注册接口

文章目录


前言

下面介绍用户注册接口。


一、代码部分

1. User

java 复制代码
package org.example.springboot3.bigevent.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.time.LocalDateTime;

@Getter
@Setter
@ToString
public class User {
    @TableId
    private Integer id;//主键ID
    private String username;//用户名
    private String password;//密码
    private String nickname;//昵称
    private String email;//邮箱
    private String userPic;//用户头像地址
    private LocalDateTime createTime;//创建时间
    private LocalDateTime updateTime;//更新时间
}

2.UserMapper1

java 复制代码
package org.example.springboot3.bigevent.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.example.springboot3.bigevent.entity.User;

/**
 * Create by zjg on 2024/5/22
 */
@Mapper
public interface UserMapper1 extends BaseMapper<User> {
}

3. UserSerivce

java 复制代码
package org.example.springboot3.bigevent.service;

import org.example.springboot3.bigevent.entity.User;

/**
 * Create by zjg on 2024/5/22
 */
public interface UserSerivce {
    User findUserByName(String username);

    int addUser(String username, String password);
}
java 复制代码
package org.example.springboot3.bigevent.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.example.springboot3.bigevent.mapper.UserMapper1;
import org.example.springboot3.bigevent.entity.User;
import org.example.springboot3.bigevent.service.UserSerivce;
import org.example.springboot3.bigevent.utils.Md5Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;

/**
 * Create by zjg on 2024/5/22
 */
@Service
public class UserSerivceImpl implements UserSerivce {
    @Autowired
    UserMapper1 userMapper1;
    @Override
    public User findUserByName(String username) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.ne("username", username);
        return userMapper1.selectOne(queryWrapper);
    }

    @Override
    public int addUser(String username, String password) {
        User user = new User();
        user.setUsername(username);
        user.setPassword(Md5Util.getMD5String(password));
        user.setCreateTime(LocalDateTime.now());
        user.setUpdateTime(LocalDateTime.now());
        return userMapper1.insert(user);
    }
}

4. UserController1

java 复制代码
package org.example.springboot3.bigevent.controller;

import org.example.springboot3.bigevent.entity.Result;
import org.example.springboot3.bigevent.entity.User;
import org.example.springboot3.bigevent.service.UserSerivce;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Create by zjg on 2024/5/22
 */
@RequestMapping("/user/")
@RestController
public class UserController1 {
    @Autowired
    UserSerivce userSerivce;
    @RequestMapping("register")
    public Result register(String username, String password){
        User user=userSerivce.findUserByName(username);
        if(user==null){//用户不存在,可以注册
            int i=userSerivce.addUser(username,password);
            if(i!=1){
                return Result.error("失败注册,请稍后重新注册!");
            }
        }else{
            return Result.error("该用户已存在,请重新注册!");
        }
        return Result.success();
    }
}

5. Result

java 复制代码
package org.example.springboot3.bigevent.entity;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

//统一响应结果
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> {
    private Integer code;//业务状态码  0-成功  1-失败
    private String message;//提示信息
    private T data;//响应数据

    //快速返回操作成功响应结果(带响应数据)
    public static <E> Result<E> success(E data) {
        return new Result<>(0, "操作成功", data);
    }

    //快速返回操作成功响应结果
    public static Result success() {
        return new Result(0, "操作成功", null);
    }

    public static Result error(String message) {
        return new Result(1, message, null);
    }
}

二、测试

1.注册


2.再次注册


总结

回到顶部

相关推荐
码事漫谈1 小时前
告别数据孤岛与AI“水土不服”:金仓多模融合时序库如何让数据真正服务于业务
后端
IT_陈寒1 小时前
Redis的持久化配置把我坑惨了:你以为数据安全了?
前端·人工智能·后端
星栈1 小时前
Node 接口该写同步还是异步?
后端·node.js
红烧大青虫1 小时前
HarmonyOS应用开发实战:小事记 - UIAbility 的冷启动/热启动/后台启动三种场景与 launchParam 解析
后端·华为·harmonyos·鸿蒙系统
码事漫谈1 小时前
AI Token 缓存:命中省 10 倍,不命中白扔钱
后端
65岁退休Coder1 小时前
LangChain v1.3.4 笔记 - 04 Agent 中间件
后端
神奇小汤圆3 小时前
一个接口多个实现,Spring 怎么"适配多场景"?
后端
花开彼岸天~3 小时前
鸿蒙原生开发手记:徒步迹 - 自定义组件开发规范
后端·华为·harmonyos·鸿蒙系统
钱六两3 小时前
#3、SpringAI 接入deepSeek大模型(喂饭版)
java·spring boot·ai编程
Suhan424 小时前
IDEA 设置启动参数和环境变量
spring boot·spring·编辑器·idea