Spring
Spring을 이용한 데이터 접근
Spring Framework는 다양한 데이터 접근 기술을 지원합니다. 이 글에서는 Spring JDBC와 Spring Data JPA를 사용하여 데이터베이스와 상호작용하는 방법을 설명하겠습니다.
6.1 Spring JDBC
개념 설명
Spring JDBC는 JDBC(Java Database Connectivity)를 간편하게 사용할 수 있도록 도와주는 모듈입니다. 이는 데이터베이스와 상호작용할 때 필요한 반복적인 코드를 줄여주고, 더 나은 예외 처리를 제공합니다.
주요 컴포넌트
- JdbcTemplate: Spring JDBC의 핵심 클래스이며, JDBC 관련 작업을 간편하게 수행할 수 있게 도와줍니다.
- DataSource: 데이터베이스 커넥션 풀을 관리합니다.
예제 코드
설정 파일 (Java 기반 설정)
설명:
@Configuration
: 이 클래스가 Spring 설정 클래스임을 나타냅니다.DataSource
: 데이터베이스 커넥션을 설정합니다.JdbcTemplate
: 데이터베이스 작업을 간편하게 수행할 수 있게 도와줍니다.
DAO 클래스
설명:
@Repository
: 이 클래스가 데이터 액세스 계층의 빈임을 나타냅니다.JdbcTemplate
: 데이터베이스 작업을 수행하는 데 사용됩니다.BeanPropertyRowMapper
: 쿼리 결과를 객체로 매핑합니다.
실행 코드
설명:
@SpringBootApplication
: Spring Boot 애플리케이션의 진입점임을 나타냅니다.SpringApplication.run(SpringJdbcApplication.class, args)
: 애플리케이션을 실행하고 IoC 컨테이너를 초기화합니다.
6.2 Spring Data JPA
개념 설명
Spring Data JPA는 JPA(Java Persistence API)를 사용하여 데이터 접근을 단순화하는 모듈입니다. 이는 기본적인 CRUD 기능을 제공하며, JPA를 사용한 데이터 접근을 더욱 간편하게 만들어줍니다.
주요 컴포넌트
- JpaRepository: 기본적인 CRUD 기능을 제공하는 리포지토리 인터페이스
- Entity: 데이터베이스 테이블과 매핑되는 클래스
예제 코드
엔터티 클래스
설명:
@Entity
: 이 클래스가 JPA 엔터티임을 나타냅니다.@Id
: 이 필드가 기본 키임을 나타냅니다.@GeneratedValue(strategy = GenerationType.IDENTITY)
: 기본 키 생성을 데이터베이스에 위임합니다.
리포지토리 인터페이스
설명:
JpaRepository<User, Long>
:User
엔터티에 대한 기본적인 CRUD 기능을 제공하는 JPA 리포지토리입니다.findByLastName(String lastName)
: 사용자 성을 기준으로 사용자 목록을 조회하는 메서드입니다.
서비스 클래스
설명:
@Service
: 이 클래스가 서비스 레이어의 빈임을 나타냅니다.UserRepository
를 주입받아 데이터 접근 로직을 처리합니다.
실행 코드
설명:
@SpringBootApplication
: Spring Boot 애플리케이션의 진입점임을 나타냅니다.SpringApplication.run(SpringDataJpaApplication.class, args)
: 애플리케이션을 실행하고 IoC 컨테이너를 초기화합니다.
Spring JDBC와 Spring Data JPA를 사용하여 데이터베이스와 상호작용하는 방법을 알아보았습니다. Spring을 통해 데이터 접근을 간편하고 효율적으로 처리할 수 있습니다.
다음 글에서는 트랜잭션 관리에 대해 자세히 알아보겠습니다.