Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

Spring Boot + Hibernate로 MySQL 테이블 자동 생성하기

Spring Boot에서 Hibernate를 사용하면 별도의 SQL 스크립트를 작성하지 않고도 엔티티(Entity) 클래스를 기반으로 MySQL 테이블을 자동으로 생성할 수 있습니다. 이 글에서는 application.properties 설정과 엔티티 클래스 작성 방법을 통해 테이블을 자동 생성하는 과정을 단계별로 살펴보겠습니다.

1. application.properties 설정

테이블을 자동으로 생성하려면 application.properties 파일에 아래 설정을 추가해야 합니다.

spring.jpa.hibernate.ddl-auto=update

ddl-auto=update 옵션을 지정하면 애플리케이션이 실행될 때 Hibernate가 엔티티 클래스를 분석하여 테이블(예: demo88)을 자동으로 생성하거나, 기존 테이블에 변경 사항을 반영합니다.

전체 application.properties 설정은 다음과 같습니다.

spring.datasource.platform=mysql
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=update
server.port=8191

spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/sampledatabase
spring.datasource.username=root
spring.datasource.password=123456

각 설정의 역할은 다음과 같습니다.

  • spring.jpa.database-platform: Hibernate가 MySQL(InnoDB) 방언을 사용하도록 지정합니다.
  • server.port: 내장 서버가 사용할 포트 번호를 지정합니다.
  • spring.datasource.*: MySQL 접속 정보(드라이버, URL, 계정)를 설정합니다.

2. 엔티티(Entity) 클래스 작성

테이블의 컬럼을 정의하는 엔티티 클래스는 다음과 같습니다. JPA 어노테이션인 @Entity, @Table, @Id, @Column을 활용합니다.

예제 코드

package com.automaticallytablecreation;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table
public class demo88 {
    @Id
    private int id;
    @Column(name="name")
    private String name;
}

@Id가 붙은 필드는 기본 키(PK)로 매핑되며, @Column(name="name")을 통해 컬럼명을 지정할 수 있습니다.

3. 메인(Main) 클래스 작성

Spring Boot 애플리케이션의 진입점인 메인 클래스는 다음과 같습니다.

예제 코드

package com.automaticallytablecreation;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AutomaticTableApplication {
    public static void main(String[] args) {
        SpringApplication.run(AutomaticTableApplication.class, args);
    }
}

4. 애플리케이션 실행 및 테이블 생성 확인

메인 클래스에서 마우스 오른쪽 버튼을 클릭한 후 Run As → Java Application 메뉴를 선택하여 애플리케이션을 실행합니다. 애플리케이션이 정상적으로 구동되면 Hibernate가 demo88 테이블을 자동으로 생성합니다.

실행 결과는 다음과 같습니다.

실행 결과

Spring Boot + Hibernate로 MySQL 테이블 자동 생성하기

테이블이 실제로 잘 생성되었는지 확인하려면 MySQL 콘솔에서 다음 명령어를 입력합니다.

mysql> show create table demo88;

그러면 아래와 같이 생성된 테이블의 DDL 정보를 확인할 수 있습니다.

출력 결과

+--------+------------------------------------------------------------+
| Table  | Create Table                                               |
+--------+------------------------------------------------------------+
| demo88 | CREATE TABLE `demo88` (
    `id` int NOT NULL,
    `name` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci     |
+--------+-------------------------------------------------------------+
1 row in set (0.03 sec)

출력 결과에서 확인할 수 있듯이, id는 기본 키로, name은 varchar 타입 컬럼으로 자동 생성되었으며, InnoDB 엔진과 utf8mb4 문자셋이 적용된 것을 알 수 있습니다.