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 추가
콘솔에서 미리 만들고 복붙하면 편함.