본문 바로가기
Spring/Spring Boot 게시판 만들기

[Spring Boot] User와 Board의 데이터베이스 테이블 구축 및 DTO(모델) 클래스 작성하기 [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 3부]

by 임채훈 2019. 2. 24.

2019/02/24 - [Spring/Spring Boot 게시판 만들기] - [Spring Boot] UserService, BoardService 클래스 작성하기 [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 5부]

2019/02/24 - [Spring/Spring Boot 게시판 만들기] - [Spring Boot] Spring Boot로 MyBatis 연동하기 (MySQL) [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 4부]

2019/02/22 - [Spring/Spring Boot 게시판 만들기] - [Spring Boot] JSP파일 만들어서 Hello Spring Boot! 출력하기 [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 2부]

2019/02/21 - [Spring/Spring Boot 게시판 만들기] - [Spring Boot] 이클립스(eclipse)로 Spring Boot 개발환경 구축하기 [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 1부]



먼저 아래와 같이 src/main/java의 폴더에 각각의 package를 만들어줍니다.




.config - 여러가지의 설정정보들을 작성해줄 패키지

.controlelr - Controller들을 모아둘 패키지

.dao - 데이터베이스와 연동할 mapper및 dao인터페이스를 모아둘 패키지

.dto - 데이터베이스 테이블의 model클래스 (dto)를 모아둘 패키지

.service - 실제로 구현할 기능들을 작성할 패키지 (로그인, 회원가입, 게시글 작성 등)




1. MySQL board Database생성 및 user, board Table 생성


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE DATABASE board;
 
USE board;
 
CREATE TABLE user (
  userId VARCHAR(50NOT NULL PRIMARY KEY,
  userPw VARCHAR(50NOT NULL,
  userName VARCHAR(50NOT NULL,
  userGender VARCHAR(10NOT NULL,
  userEmail VARCHAR(50NOT NULL
);
 
CREATE TABLE board (
  num INT PRIMARY KEY AUTO_INCREMENT,
  title VARCHAR(100),
  content VARCHAR(1000),
  writer VARCHAR(50NOT NULL,
  password VARCHAR(50NOT NULL,
  writeDate VARCHAR(50NOT NULL,
  FOREIGN KEY(writer) REFERENCES user(userId)
  ON UPDATE CASCADE
);
cs



board 테이블의 num 컬럼은 작성된 글마다 고유한 번호를 가질수 있도록 PK 및 AI 설정을 해준 뒤


board 테이블의 writer 컬럼은 외래키로서 user 테이블의 userId를 참조하도록 해줘서


위와 같은 구조로 데이터베이스 및 테이블을 생성해주시면 됩니다.




2. 데이터베이스 테이블에 맞도록 DTO 작성하기


- com.example.demo.dto.UserDto.java


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package com.example.demo.dto;
 
public class UserDto {
    private String userId;
    private String userPw;
    private String userName;
    private String userGender;
    private String userEmail;
    
    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String getUserPw() {
        return userPw;
    }
    public void setUserPw(String userPw) {
        this.userPw = userPw;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUserGender() {
        return userGender;
    }
    public void setUserGender(String userGender) {
        this.userGender = userGender;
    }
    public String getUserEmail() {
        return userEmail;
    }
    public void setUserEmail(String userEmail) {
        this.userEmail = userEmail;
    }
    @Override
    public String toString() {
        return "UserDto [userId=" + userId + ", userPw=" + userPw + ", userName=" + userName + ", userGender="
                + userGender + ", userEmail=" + userEmail + "]";
    }
}
 
cs



- com.example.demo.dto.BoardDto.java


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.example.demo.dto;
 
import java.util.Date;
 
public class BoardDto {
    private int num;
    private String title;
    private String content;
    private String writer;
    private String password;
    private Date writeDate;
    
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getWriter() {
        return writer;
    }
    public void setWriter(String writer) {
        this.writer = writer;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Date getWriteDate() {
        return writeDate;
    }
    public void setWriteDate(Date writeDate) {
        this.writeDate = writeDate;
    }
    @Override
    public String toString() {
        return "BoardDto [num=" + num + ", title=" + title + ", content=" + content + ", writer=" + writer
                + ", password=" + password + ", writeDate=" + writeDate + "]";
    }
}
 
cs



데이터베이스에 생성한 테이블의 컬럼들과 대응하도록 멤버변수들을 갖고 


Getter / Setter 및 ToString까지 만들어줍니다.







다음장에서는 스프링 부트 환경에서 MyBatis를 이용해 MySQL데이터베이스와 연동하는


Dao 클래스를 작성하고 MyBatis 설정정복 작성을 해보도록 하겠습니다.

댓글