logoStephen's 기술블로그

포스트 검색

제목, 태그로 포스트를 검색해보세요

#블로그만들기_07 #Board 테이블 생성

#블로그만들기_07 #Board 테이블 생성
SpringWebApp
성훈 김
2024년 2월 6일
목차
YAML
floatfirstTOC: right

1️⃣ View 먼저 확인

💡
🔹 게시글에 대한 Entity 테이블이 필요하다. 🔹 일단 View 먼저 확인해서 필요한 필드값을 확인하고, 비즈니스를 이해하여서 테이블에 필요한 칼럼을 판단해야된다. 🔹 게시글이라는 비즈니스에는 제목/내용/작성자/게시물번호/작성된시간이라는 필드값이 필요할 것이라 예측이 된다.
notion image
 
 

2️⃣ Entity 테이블 생성

💡
🔹 DB의 데이터를 조회하고 담는 정보를 넣는 역할을 하는 Entity 테이블을 담을 Board 객체를 설정한다.. 🔹 게시물 번호는 Board테이블의 id가 될 것이다. 🔹 제목과 내용은 확인된 대로 titlecontent가 될 것이다. 🔹 작성자 ID는 userId로 설정하여 user테이블의 PK인 id를 참조할 것이다. (카멜표기법 꼭 지켜준다.) 🔹 작성된 시간은 createdAt으로 설정한다 (카멜표기법!!)
Java
package shop.mtcoding.blog.board;

import jakarta.persistence.*;
import lombok.Data;
import java.time.LocalDateTime;

@Table(name="board_tb")
@Data
@Entity // 테이블 생성하기 위해 필요한 어노테이션, entity는 DB의 자료를 1차적으로 담는 그릇
public class Board { // User 1 -> Board N
    @Id // PK 설정
    @GeneratedValue(strategy = GenerationType.IDENTITY) // auto_increment 전략
    private int id;
    private String title;
    private String content;

    private int userId; // 테이블에 만들어 질때 user_id

    private LocalDateTime createdAt; // 카멜표기법으로 넣으면 JPA가 자동변
}
 
💡
🔹 카멜표기법을 정확히 지켜주어야지 JPA가 인식하고 처리한다. 🔹 Board테이블이 잘 인식되고 있다.
notion image
 
 

2️⃣ 데이터 초기화

💡
🔹 resource/templates/db/data.sql 경로의 sql파일에 초기화 용도로 사용할 데이터를 넣는다.
SQL
insert into board_tb(title, content, user_id, created_at) values('제목1', '내용1', 1, now());
insert into board_tb(title, content, user_id, created_at) values('제목2', '내용2', 1, now());
insert into board_tb(title, content, user_id, created_at) values('제목3', '내용3', 1, now());
insert into board_tb(title, content, user_id, created_at) values('제목4', '내용4', 2, now());
 
 
💡
H2 데이터베이스 접속
SQL
http://localhost:8080/h2-console/
 
 
💡
데이터 확인
notion image