[스프링 부트] 4. H2 Database 테이블 만들기

KangHo Lee's avatar
Nov 15, 2024
[스프링 부트] 4. H2 Database 테이블 만들기

1) application.properties 파일에서 설정하기

# 1. DB 연결 spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem:test spring.datasource.username=sa # 2. Hibernate 세팅 spring.jpa.hibernate.ddl-auto=create spring.jpa.show-sql=true

Hibernate

  • Java 객체와 관계형 데이터베이스 간의 매핑을 도와주는 ORM(Object-Relational Mapping) 프레임워크입니다
  • spring.jpa.hibernate.ddl-auto=create
    • @Entitiy가 붙어있는 클래스를 찾아서 프로그램 실행 시 테이블을 생성합니다.
  • spring.jpa.show-sql=true
    • SQL 쿼리를 콘솔에 출력하도록 설정합니다.

2) Entitiy 클래스 생성

💡
엔티티(Entity)는 데이터베이스 테이블과 매핑되는 자바 클래스입니다.
@Table(name = "board_tb") @NoArgsConstructor @Entity @Getter public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String title; private String content; private Timestamp createdAt; }

각 어노테이션 설명

  1. @Getter, @NoArgsConstructor
      • Hibernate는 리플렉션(reflection)을 사용하여 엔티티 클래스의 필드에 접근하고 값을 설정합니다.
      • 이 과정에서 기본 생성자가 필요하며, getter 메서드를 통해 필드 값을 읽을 수 있습니다.
  1. @Entity
      • 엔티티 어노테이션을 쓰려면 기본키 설정이 필요합니다.
      • @id 를 필드에 적어서 기본키를 설정합니다.
        • import는 jakarta로 하면 됩니다.
  1. @Table(name = "board_tb")
      • 테이블 이름을 따로 정해주지 않으면 클래스 이름(Board)과 똑같이 만듭니다.
  1. @GeneratedValue(strategy = GenerationType.IDENTITY)
      • 엔티티의 기본 키 값을 자동으로 생성합니다.
      • 하이버네이트 로그에 generated by default as identity로 기록이 남습니다.
      • MySql에서 Auto-Increment 기능입니다.
💡
  • 필드 이름 createdAt은 컬럼명이 created_at 이 됩니다.
  • 필드 이름과 컬럼명이 일치하는지 체크하면 좋습니다.
Share article

devleekangho