开发用户注册接口

news/2024/9/18 21:52:47 标签: spring boot

用户表基本结构 

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

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类加上注解

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


http://www.niftyadmin.cn/n/5659641.html

相关文章

C# 开发教程-入门基础

1.C# 简介、环境&#xff0c;程序结构 2.C# 基本语法&#xff0c;变量&#xff0c;控制局域&#xff0c;数据类型&#xff0c;类型转换 3.C# 数组、 循环&#xff0c;Linq 4.C# 类&#xff0c;封装&#xff0c;方法 5.C# 枚举、字符串 6.C# 面相对象&#xff0c;继承&#xff0…

新电脑安装和配置pytorch、anaconda、CUDA、cuDNN、pycharm、OpenCV的过程记录

显卡驱动和CUDA 一、升级显卡驱动到官方最新版 1、打开英伟达官网&#xff0c;输入显卡芯片型号&#xff0c;手动搜索并下载显卡驱动。 NVIDIA 官方驱动 ​ 2、下载完成后安装驱动。 二、确认显卡支持的最高CUDA版本 1、键盘"winR"&#xff0c;调出运行输入cmd后…

深入理解Java中的线程状态转换及关键同步方法

深入理解Java中的线程状态转换及关键同步方法 在现代软件开发中&#xff0c;多线程编程是实现高效、响应式应用程序的关键技术之一。理解线程的生命周期及其状态转换&#xff0c;对于编写健壮、性能优越的并发程序至关重要。本文将深入探讨Java中线程的各种状态转换&#xff0…

CAN总线-STM32上CAN外设

1.STM32 CAN外设简介 2.CAN网拓扑结构 3.CAN收发器电路 4.CAN框图 5.CAN基本结构 6.发送过程 7.接收过程 8.发送和接收配置位 9.标识过滤器&#xff08;重点&#xff09; 这里的FBMX模式设置的列表模式&#xff1a;你在列表中输入你想要的报文ID&#xff0c;不在你列表中的ID屏…

红日靶场通关

初始准备 首先是网络配置&#xff0c;看教程来的&#xff0c;我配置完的效果如下 windows7&#xff1a;(内&#xff1a;192.168.52.143 / 外&#xff1a;192.168.154.136) windows2003&#xff1a;(内&#xff1a;192.168.52.141)windows2008:&#xff08;内&#xff1a;192.…

解决 Kylin OS 提示软件包 powerconnect 需要重新安装,但是我无法找到相应的安装文件

解决 Kylin OS 提示软件包 powerconnect 需要重新安装&#xff0c;但是我无法找到相应的安装文件 1、问题现象2、解决办法 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、问题现象 sudo apt-get install -y seahorse生物识别认证 按Q或…

Java html生成pdf和图片

在 Java 项目中将 HTML 生成图片是一项常见需求&#xff0c;特别是用于生成报告、预览页面截图等。不同的库和工具在渲染能力、性能以及支持的功能上有所不同。以下是几种主流的技术选型和对比&#xff0c;帮助你选择适合的解决方案。 技术对比总结 技术名称优点缺点适用场景…

【LLM:Gemini】文本摘要、信息提取、验证和纠错、重新排列图表、视频理解、图像理解、模态组合

开始使用Gemini 目录 开始使用Gemini Gemini简介 Gemini实验结果 Gemini的多模态推理能力 文本摘要 信息提取 验证和纠错 重新排列图表 视频理解 图像理解 模态组合 Gemini多面手编程助理 库的使用 引用 本文概述了Gemini模型和如何有效地提示和使用这些模型。本…