spring boot database 예제

Spring Boot는 데이터베이스와의 상호작용을 쉽게 처리할 수 있는 강력한 기능을 제공합니다. 이번 예제에서는 Spring Boot에서 데이터베이스에 접근하고 데이터를 CRUD(Create, Read, Update, Delete)하는 방법을 알아보겠습니다.

1. 의존성 추가

먼저, 프로젝트의 pom.xml 파일에 데이터베이스 관련 의존성을 추가해야 합니다. 예를 들어, MySQL 데이터베이스를 사용하는 경우 다음과 같이 의존성을 추가할 수 있습니다.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

2. 데이터베이스 설정

Spring Boot에서는 application.properties 또는 application.yml 파일을 통해 데이터베이스 연결 설정을 관리할 수 있습니다. 예를 들어, MySQL 데이터베이스에 연결하려면 아래와 같이 설정을 추가할 수 있습니다.

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: root
    password: password

3. 엔티티 클래스 생성

다음으로, 데이터베이스의 테이블과 매핑될 엔티티 클래스를 생성합니다. 엔티티 클래스는 @Entity 어노테이션을 추가하고, 각 필드는 @Column 어노테이션을 통해 데이터베이스의 열과 매핑됩니다. 예를 들어, 사용자 정보를 담는 User 엔티티 클래스를 생성해보겠습니다.

@Entity
public class User {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @Column(nullable = false)
    private String name;
    
    @Column(nullable = false)
    private String email;
    
    // Getter, Setter, Constructor 등 생략...
}

4. Repository 생성

Spring Data JPA를 사용하여 데이터베이스와의 상호작용을 처리하기 위해, 엔티티 클래스에 해당하는 Repository 인터페이스를 생성해야 합니다. 예를 들어, User 엔티티의 Repository를 생성해보겠습니다.

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

5. CRUD 작업 수행

이제, Repository를 통해 데이터베이스에 CRUD 작업을 수행할 수 있습니다. 예를 들어, 사용자 정보를 조회하고 저장하는 서비스 클래스를 작성해보겠습니다.

@Service
public class UserService {
    
    @Autowired
    private UserRepository userRepository;
    
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }
    
    public User saveUser(User user) {
        return userRepository.save(user);
    }
    
    // 기타 CRUD 작업 메소드 추가...
}

위의 코드에서 userRepository@Autowired로 주입받고, findAll 메소드로 사용자 정보를 조회하고 save 메소드로 사용자 정보를 저장합니다.

마무리

이제 Spring Boot에서 데이터베이스와의 상호작용을 위한 예제를 살펴보았습니다. 데이터베이스 연결 설정, 엔티티 클래스 생성, Repository 생성 및 CRUD 작업 수행에 대한 기본적인 내용을 알아보았습니다. 추가적인 기능이나 세부적인 설정은 Spring Boot 공식 문서를 참고하시기 바랍니다.

#SpringBoot #Database #SpringDataJPA