스프링 부트 mysql 데이터 가져 오기

스프링 부트는 웹 애플리케이션을 개발하는 데 사용되는 프레임워크입니다. MySQL은 데이터베이스 시스템 중 하나로, 데이터를 저장하고 조회할 수 있습니다. 이번 블로그 포스트에서는 스프링 부트와 MySQL을 연동하여 데이터를 가져오는 방법을 알아보겠습니다.

1. 의존성 추가하기

스프링 부트와 MySQL을 연동하기 위해 의존성을 추가해야 합니다. pom.xml 파일에 다음과 같이 의존성을 추가합니다.

<dependencies>
    <!-- 스프링 부트 웹 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- MySQL 데이터베이스 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

2. 데이터베이스 연결 설정하기

application.properties 파일에 MySQL 데이터베이스 연결에 필요한 설정을 추가합니다.

# MySQL 연결 설정
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

localhost:3306은 MySQL 데이터베이스가 실행 중인 호스트와 포트를 나타냅니다. mydatabase는 사용할 데이터베이스의 이름입니다. usernamepassword는 MySQL 데이터베이스에 로그인하기 위한 자격 증명입니다.

3. 데이터 가져오기

데이터를 가져오기 위해 스프링 부트에서 Repository 클래스를 사용합니다. 예를 들어, User라는 모델 클래스와 UserRepository라는 인터페이스를 정의하고 사용하여 데이터를 가져올 수 있습니다.

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;

    // 생성자, getter, setter, toString 등의 메서드 생략
}

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findAll();
}

위의 예제에서는 User 클래스에 @Entity@Table 어노테이션을 사용하여 테이블과 매핑합니다. UserRepository 인터페이스는 JpaRepository를 상속하여 데이터를 조회하는 메서드를 상속받습니다.

4. 컨트롤러 생성하기

데이터를 가져오기 위해 컨트롤러를 생성합니다. 컨트롤러는 클라이언트 요청을 처리하고 결과를 반환하는 역할을 합니다.

@RestController
@RequestMapping("/users")
public class UserController {
    private final UserRepository userRepository;

    public UserController(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @GetMapping
    public List<User> getUsers() {
        return userRepository.findAll();
    }
}

위의 예제에서는 @RestController@RequestMapping 어노테이션을 사용하여 컨트롤러를 정의합니다. UserController 클래스는 UserRepository를 주입받아 findAll() 메서드를 호출하여 모든 사용자 데이터를 반환합니다.

5. 테스트하기

웹 애플리케이션을 실행하고 브라우저 또는 API 테스트 도구를 사용하여 /users 엔드포인트에 GET 요청을 보내면, MySQL 데이터베이스에서 사용자 데이터를 가져올 수 있습니다.

[
    {
        "id": 1,
        "name": "John",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane",
        "email": "jane@example.com"
    }
]

마치며

이번 블로그 포스트에서는 스프링 부트와 MySQL을 사용하여 데이터를 가져오는 방법을 알아보았습니다. MySQL 데이터베이스와의 연결 설정, Repository 클래스를 통한 데이터 조회, 그리고 컨트롤러를 통한 결과 반환에 대해 살펴보았습니다. 이를 참고하여 실제 프로젝트에서 데이터를 가져오는 기능을 구현할 수 있습니다.

#스프링부트 #MySQL #데이터 #가져오기