프로젝트일지

개인프로젝트 일지_3 | MySQL, JPA 스프링 부트 연동 테스트하는 법

백엔드 개발자 - 젤리곰 2024. 6. 5. 16:51
728x90

1. application.properties 설정

spring.application.name=planBuddy
server.port=8000

# MySQL Database configuration
spring.datasource.url=jdbc:mysql://<엔드포인트>:<포트번호>/<데이터베이스이름>
spring.datasource.username=<마스터 이름>
spring.datasource.password=<마스터 비밀번호>
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# JPA configuration
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect

✔️MySQL Database를 연동한다.

 

✔️spring.jpa.hibernate.ddl-auto=update

-> 애플리케이션 실행 시 JPA가 @Entity 어노테이션이 붙은 클래스에 데이터베이스 스키마를 생성하거나 업데이트한다.

 

2. Test 디렉토리 경로

Project_1st 하위에 test 디렉토리를 생성하고

test하위에 entity, repository 디렉토리를 만들었다.

 

3. 코드

✅User

package Project_1st.test.entity;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.Getter;
import lombok.Setter;

@Entity
@Getter
@Setter
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;

    // Constructors
    public User() {}

    public User(String name) {
        this.name = name;
    }

}

@Entity가 붙은 User클래스는 데이터베이스 테이블로 매핑된다.

 

✅UserRepository

package Project_1st.test.repository;

import Project_1st.test.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

 

✅TestApplication

package Project_1st.test;

import Project_1st.test.entity.User;
import Project_1st.test.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class TestApplication implements CommandLineRunner {

    @Autowired
    private UserRepository userRepository;

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }
    @Override
    public void run(String... args) throws Exception {
        // 데이터 삽입
        User user = new User("ururuwave");
        userRepository.save(user);

        // 데이터 조회
        userRepository.findAll().forEach(System.out::println);
    }
}

✔️클래스는 실행 시 CommandLineRunner를 구현하여 User 엔티티 객체를 저장하고 조회한다.

 

4. 결과

워커벤치에서 확인해보면 id는 자동으로 숫자가 증가되어 저장되고

TestApplication 클래스에 "ururuwave"로 데이터를 삽입한대로 테이블에 update된 것을 확인할 수 있다.

 

728x90