Study/spring

[Java] Spring Boot 3 MySQL JPA 연동하기

 

Spring Boot 3에서 JPA를 연동하는 방법을 설명드리겠습니다.

(Maven, Gradle 포함)

 

연동 준비

데이터베이스 생성

프로젝트에서 사용할 데이터베이스를 생성합니다.

데이터베이스 생성
데이터베이스 생성

spring_boot라는 데이터베이스를 생성하였습니다.

 

의존성 추가

maven

<dependencies>
	...
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-jpa</artifactId>
	</dependency>
	<dependency>
  		<groupId>com.mysql</groupId>
  		<artifactId>mysql-connector-j</artifactId>
  		<scope>runtime</scope>
	</dependency>
	...
</dependencies>

 

gradle

dependencies {
	...
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtimeOnly 'com.mysql:mysql-connector-j'
    ...
}

 

연결 정보 설정

application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/spring_boot
    username: <연결할 계정명>
    password: <비밀번호>
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update

 

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/spring_boot
spring.datasource.username=<연결할 계정명>
spring.datasource.password=<비밀번호>
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update

 

연동 확인

프로젝트를 실행했을 때 다음과 같은 로그가 나오면 연결에 성공한겁니다.

HikariPool 로그 확인
HikariPool 로그 확인

 

 

 

 

테이블 생성

JPA를 활용해서 데이터베이스에 테이블을 생성해보겠습니다.

엔티티 생성

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class Test {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false)
    private Long id;

    private String name;
    
}

 

Test라는 이름을 가진 엔티티를 생성하였습니다.

Spring Boot 3이라서 java.persistence 패키지가 아니라 jakarta.persistence 패키지가 사용되었습니다.

 

이전에 데이터베이스 연결 설정에서 ddl-auto 옵션을 update로 설정하였습니다.

그래서 프로젝트를 시작하면 JPA에 의해 Test 엔티티 정보로 테이블을 생성합니다.

 

JPA에 의해 생성된 test 테이블 정보
JPA에 의해 생성된 test 테이블 정보

 

쿼리 로그 확인

JPA가 어떻게 쿼리를 만들어서 테이블을 생성하는지 확인하려면 로그 설정을 추가해야 합니다.

application.yml

logging:
	level:
		org.hibernate.SQL: debug

 

application.properties

logging.level.org.hibernate.SQL=debug

 

설정하고 프로젝트를 실행하면 JPA가 생성한 CREATE TABLE 쿼리를 확인할 수 있습니다.

JPA가 생성한 CREATE TABLE 쿼리
JPA가 생성한 CREATE TABLE 쿼리

 

create table test (id bigint not null auto_increment, name varchar(255), primary key (id)) engine=InnoDB 쿼리로 테이블을 생성했다는 것을 알 수 있습니다.

 

 

읽으면 좋은 글

[Java] Spring Boot JpaRepository 사용법 정리

 

[Java] Spring Boot JpaRepository 사용법 정리

Spring에서 JpaRepository 기본 설정 방법과 사용하는 방법에 대해 설명드리겠습니다. 기본 설정JpaRepository를 사용하기 위한 기본 설정은 아래 글을 참고하시면 됩니다.[Java] Spring Boot 3 MySQL JPA 연동하

priming.tistory.com