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