Spring(수업 정리 #6)bbs2

최동민·2022년 5월 31일
0

Spring 수업정리

목록 보기
10/47

UserController 에서 POST 추가

mariaDB 연결 후 spring localhost 불러온 후
spring2 데이터베이스를 생성하고 user_levels와 users 테이블을 만든다.

db에서
flag는 여부를 나타낸다. (boolean타입)
deleted_flag는 회원이 탈퇴한다에 대한 여부를 나타낸다
level 9는 일반 사용자 회원
level 1은 최고사용자

user_levels 테이블에 컬럼 추가

entities 패키지 만들고
UserEntity 클래스 생성

interfaces 패키지 만들고
IEntity 인터페이스 생성

내용 추가

UserEntity 필드 작성

package dev.dmchoi.bbs.entities;

import dev.dmchoi.bbs.interfaces.IEntity;

import java.util.Date;

// 인터페이스가 인터페이스를 구현할 때는 extends
// IEntity 인터페이스를 구현


public class UserEntity implements IEntity<UserEntity> {

    private int index;
    private String email;
    private String password;
    private String nickname;
    private String contact;
    private int level;
    private Date registeredAt;
    private Date modifiedAt;
    private boolean isDeleted;
    private boolean isSuspended;


    // 빈 생성자
    public UserEntity() {
        super();
    }


    // 내 타입을 전달하는 생성자
    public UserEntity(UserEntity userEntity) {
        super();
        this.copyValuesOf(userEntity);
    }


    // 전체 값을 다 가지는 생성자
    public UserEntity(int index, String email, String password, String nickname, String contact, int level, Date registeredAt, Date modifiedAt, boolean isDeleted, boolean isSuspended) {
        super();
        this.index = index;
        this.email = email;
        this.password = password;
        this.nickname = nickname;
        this.contact = contact;
        this.level = level;
        this.registeredAt = registeredAt;
        this.modifiedAt = modifiedAt;
        this.isDeleted = isDeleted;
        this.isSuspended = isSuspended;
    }

// 게터 세터
    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact;
    }

    public int getLevel() {
        return level;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public Date getRegisteredAt() {
        return registeredAt;
    }

    public void setRegisteredAt(Date registeredAt) {
        this.registeredAt = registeredAt;
    }

    public Date getModifiedAt() {
        return modifiedAt;
    }

    public void setModifiedAt(Date modifiedAt) {
        this.modifiedAt = modifiedAt;
    }

    public boolean isDeleted() {  // boolean 타입이기에 get이 아닌 is~
        return isDeleted;
    }

    public void setDeleted(boolean deleted) {
        isDeleted = deleted;
    }

    public boolean isSuspended() {
        return isSuspended;
    }

    public void setSuspended(boolean suspended) {
        isSuspended = suspended;
    }

    //  새로운 UserEntity를 객체화해서 복사
    @Override
    public UserEntity clone() {
        UserEntity userEntity = new UserEntity();
        userEntity.index = this.index;
        userEntity.email = new String(this.email);  // new String 지워도 됨.
        userEntity.password = new String(this.password);
        userEntity.nickname = new String(this.nickname);
        userEntity.contact = new String(this.contact);
        userEntity.level = this.level;
        userEntity.registeredAt = (Date) this.registeredAt.clone();
        userEntity.modifiedAt = (Date) this.modifiedAt.clone();
        userEntity.isDeleted = this.isDeleted;
        userEntity.isSuspended = this.isSuspended;
        return userEntity;
    }

//  전달받은 객체의 값들을 나의 멤버값들로 지정하는 것
    @Override
    public void copyValuesOf(UserEntity userEntity) {
        this.index = userEntity.index;
        this.email = userEntity.email;
        this.password = userEntity.password;
        this.nickname = userEntity.nickname;
        this.contact = userEntity.contact;
        this.level = userEntity.level;
        this.registeredAt = userEntity.registeredAt;
        this.modifiedAt = userEntity.modifiedAt;
        this.isDeleted = userEntity.isDeleted;
        this.isSuspended = userEntity.isSuspended;
    }

    @Override
    public boolean equals(Object obj) {
        if(!(obj instanceof UserEntity)) {
            return false;
        }
        UserEntity userEntity = (UserEntity) obj;
        return this.index == userEntity.index;
//        return this.index == ((UserEntity) obj).index; // 다른 방법
    }
}

이번엔 UserLevelEntity 생성 후



package dev.dmchoi.bbs.entities;

import dev.dmchoi.bbs.interfaces.IEntity;

public class UserLevelEntity implements IEntity<UserLevelEntity> {
    private int level;
    private String text;

    // 빈 생성자
    public UserLevelEntity() {
    }

    //게터 세터
    public int getLevel() {
        return level;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public UserLevelEntity(UserLevelEntity userLevelEntity) {
        this.copyValuesOf(userLevelEntity);
    }

    public UserLevelEntity(int level, String text) {
        this.level = level;
        this.text = text;
    }


    @Override
    public UserLevelEntity clone() {
        UserLevelEntity userLevelEntity = new UserLevelEntity();
        userLevelEntity.level = this.level;
        userLevelEntity.text = this.text;
        return userLevelEntity;
    }


    @Override
    public void copyValuesOf(UserLevelEntity userLevelEntity) {
        this.level = userLevelEntity.level;
        this.text = userLevelEntity.text;
    }

    @Override
    public boolean equals(Object obj) {
        if(!(obj instanceof UserLevelEntity)) {
            return false;
        }
        UserLevelEntity userLevelEntity = (UserLevelEntity)obj;
//        return this.level == userLevelEntity.level;
        return this.level == ((UserLevelEntity) obj).level;

    }
}

vos 패키지 생성하고 UserRegisterVo 만들기

enums 패키지 생성 후 UserRegisterResult enum만들기

services 패키지 생성 후 UserService 생성

UserController 에서 내용 추가

포스트맨에서 http://127.0.0.1:8080/user/register
POST설정 Body 에서 form-data 아무거나 만들고 send

값이 넘어온다

다시 UserController 에서 내용 변경

daos 패키지 생성 후 UserDao 만들기

pom.xml에서 두 가지 추가 (커맨드N -> Add dependency)
spring-boot-starter-jdbc
mariadb-java-client
만약 업로드가 안되어 있으면 http://mvnrepository.com 사이트에서 찾기

application.properties 에 가서

UserDao 에 가서 insert 추가

콘솔에서 미리 만들고 복붙하면 편함.

profile
코드를 두드리면 문이 열린다

0개의 댓글