19. BLOG만들기-Board 테이블 생성

박선규's avatar
Feb 05, 2024
19. BLOG만들기-Board 테이블 생성

Board 테이블 생성

a. 테이블 생성

notion image
package shop.mtcoding.blog.board; import jakarta.persistence.*; import lombok.Data; import java.time.LocalDateTime; @Table(name="board_tb") @Data @Entity // 테이블 생성하기 위해 필요한 어노테이션 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; }
createdAt은 db에서 _가 사용된 채 만들어 진다.(자바처럼 카멜 표기법을 사용하지 않아서)
 
  • @Data를 사용하면 아래의 기능을 사용할 수 있게 된다.
    • @Getter
    • @Setter
    • @ToString
    • @EqualsAndHashCode
    • @RequiredArgsConstructor
      • : 초기화 되지 않은 final 필드나 @NonNull이 붙은 필드에 대해 생성자를 만들어 준다.
        💡
        - AllArgsConstructor : 클래스에 존재하는 모든 필드에 대한 생성자를 자동으로 생성 - NoArgsConstructor : 파라미터가 없는 생성자를 생성
    • @Value
  • @Entity가 붙은 클래스는 JPA가 관리해준다.
    • JPA를 사용해서 DB테이블과 매핑할 클래스는 @Entity를 꼭 붙여야만 매핑이 가능하다.
    • 접근 제어자가 public 혹은 protected인 기본 생성자가 필수로 필요하다.
    • final, enum, interface, inner 클래스에는 사용이 불가능하다.
    • 저장하려는 속성이 final이 아니어야 한다.
  • @Table을 사용하면 테이블 명을 정할 수 있다.
  • @ID를 사용하면 PK(Primary Key)를 설정할 수 있다.
  • @GeneratedValue
    • @GeneratedValue(strategy = GenerationType.IDENTITY)는 AUTO_INCREMENT과 기능이 같다.
 
  • 구조 이해하기(스키마 이해)
    • ex. 2가 적은 게시물 title은 제목4다
Share article
RSSPowered by inblog