springboot註冊

xmz-x發表於2024-03-09

查詢使用者,判斷使用者名稱是否被佔用。

1.沒有被佔用,則註冊

2.被佔用,則顯示使用者名稱已被佔用!

service : UserService

public interface UserService {
    //根據使用者名稱查詢使用者
    User findByUserName(String username);

    //註冊
    void register(String username, String password);
}

mapper : UserMapper

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

controller : UserController

import com.example.pojo.Result;
import com.example.pojo.User;
import com.example.service.UserService;
import jakarta.validation.constraints.Pattern;
import org.springframework.beans.factory.annotation.Autowired;
@RestController
@RequestMapping("/user")
@Validated
public class UserController {
    @Autowired
    private UserService userService;
    @PostMapping("/register")
    public Result register(@Pattern(regexp = "^\\S{5,16}$") String username, @Pattern(regexp = "^\\S(5,16)$") String password) {
        //查詢使用者
        User user = userService.findByUserName(username);
        if(user == null){
            //沒有佔用,註冊
            userService.register(username,password);
            return Result.success();
        }else {
            //佔用
            return Result.error("使用者名稱已被佔用!");
        }
    }
}

相關文章