먼저 아래와 같이 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(50) NOT NULL PRIMARY KEY, userPw VARCHAR(50) NOT NULL, userName VARCHAR(50) NOT NULL, userGender VARCHAR(10) NOT NULL, userEmail VARCHAR(50) NOT NULL ); CREATE TABLE board ( num INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(100), content VARCHAR(1000), writer VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, writeDate VARCHAR(50) NOT 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 설정정복 작성을 해보도록 하겠습니다.
댓글