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 테이블을 자동으로 생성합니다.
실행 결과는 다음과 같습니다.
실행 결과

테이블이 실제로 잘 생성되었는지 확인하려면 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 문자셋이 적용된 것을 알 수 있습니다.