Spring Boot 笔记 009 创建接口_更新用户基本信息

1.1.1 给User实体类添加校验

java 复制代码
package com.geji.pojo;



import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

import java.time.LocalDateTime;
//lombok  在编译阶段,为实体类自动生成setter  getter toString
// pom文件中引入依赖   在实体类上添加注解
@Data
public class User {
    @NotNull
    private Integer id;//主键ID
    private String username;//用户名
    @JsonIgnore//让springmvc把当前对象转换成json字符串的时候,忽略password,最终的json字符串中就没有password这个属性了
    private String password;//密码


    @NotEmpty
    @Pattern(regexp = "^\\S{1,10}$")
    private String nickname;//昵称

    @NotEmpty
    @Email
    private String email;//邮箱
    private String userPic;//用户头像地址
    private LocalDateTime createTime;//创建时间
    private LocalDateTime updateTime;//更新时间
}

1.1.1 UserController中添加update方法

java 复制代码
    @PutMapping("/update")
    public Result update(@RequestBody @Validated User user) {
        userService.update(user);
        return Result.success();
    }

1.1.2 UserService中添加update接口

java 复制代码
package com.geji.service;

import com.geji.pojo.User;

public interface UserService {
    //根据用户名查找用户
    User findByUserName(String username);

    //根据用户名和密码注册
    void register(String username, String password);

    void update(User user);
}

1.1.3 UserServiceImpl中添加update实现类

java 复制代码
    @Override
    public void update(User user) {
        user.setUpdateTime(LocalDateTime.now());
        userMapper.update(user);
    }

1.1.4 UserMapper中添加update方法

java 复制代码
package com.geji.mapper;

import com.geji.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

@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);

    @Update("update user set nickname=#{nickname},email=#{email},update_time=#{updateTime} where id=#{id}")
    void update(User user);

}

1.1.5 使用postman测试

相关推荐
薪火铺子3 分钟前
Redis 分布式锁与 Redisson 原理深度解析
java·redis·分布式·后端
胡楚昊4 分钟前
BUU WEB之旅(1)
java·数据库·mybatis
kels88999 分钟前
2026 年黄金实时价格数据 API 接口实测推荐
开发语言·笔记·python·金融·区块链
深蓝海拓9 分钟前
用HSL颜色系统改造qdarkstyle样式表库
前端·笔记·python·qt·学习
azhou的代码园13 分钟前
基于微信小程序的图片识别科普系统的设计与实现
vue.js·spring boot·微信小程序·小程序·毕业设计·科普·图片识别
牢七16 分钟前
链条合集整理
java·开发语言
小雅痞29 分钟前
[Java][Leetcode hard] 30. 串联所有单词的子串
java·leetcode
钝挫力PROGRAMER1 小时前
static final 指向可变集合的设计模式
java·设计模式
Filwaod1 小时前
互联网大厂Java面试实战:Spring+Redis+MySQL+JVM场景问答深度解析
jvm·spring boot·redis·mysql·java面试·技术面试·互联网大厂
青山师1 小时前
Java反射深度解析:运行时探查的艺术、代价与工程实践
java·开发语言·面试·反射·java程序员·java核心