4. 데이터베이스 연동 기초
4.1. JDBC 연동
스프링 부트는 데이터베이스 연동을 위해 JDBC(Java Database Connectivity)를 사용할 수 있습니다. JDBC는 자바 애플리케이션에서 데이터베이스에 접근하고 데이터를 조작하기 위한 표준 API입니다. 스프링 부트는 자동 구성을 통해 데이터 소스를 설정하며, application.properties 파일에서 데이터베이스 관련 설정을 할 수 있습니다.
먼저 데이터베이스 드라이버를 의존성에 추가해야 합니다. 여기서는 MySQL을 예로 들겠습니다.
Maven의 경우 pom.xml에 다음과 같이 추가합니다.
<!-- Maven 의존성 추가 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
Gradle의 경우 build.gradle에 다음과 같이 추가합니다.
// Gradle 의존성 추가
implementation 'mysql:mysql-connector-java:8.0.26'
그리고 application.properties 파일에서 데이터베이스 연결 정보를 설정합니다.
# application.properties
# 데이터베이스 URL
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
# 사용자 이름
spring.datasource.username=root
# 비밀번호
spring.datasource.password=password
# 드라이버 클래스 이름
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
이 설정을 통해 MySQL 데이터베이스와 연동이 가능합니다. 이제 JDBC를 사용하여 데이터베이스에 접근하고 데이터를 조작하는 코드를 작성할 수 있습니다.
4.2. 스프링 데이터 JPA 사용
스프링 데이터 JPA(Java Persistence API)는 객체와 데이터베이스 테이블 간의 매핑을 관리하며, 쿼리 작성을 쉽게 할 수 있는 기능을 제공합니다. 스프링 부트에서는 스프링 데이터 JPA를 쉽게 사용할 수 있습니다.
먼저 스프링 데이터 JPA를 사용하기 위해 의존성을 추가합니다.
Maven의 경우 pom.xml에 다음과 같이 추가합니다.
<!-- Maven 의존성 추가 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
Gradle의 경우 build.gradle에 다음과 같이 추가합니다.
// Gradle 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
그다음 엔티티 클래스를 생성합니다. 엔티티 클래스는 데이터베이스 테이블의 행과 매핑되는 객체로, JPA에서 사용됩니다. 엔티티 클래스는 @Entity 어노테이션을 사용하여 선언합니다.
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// 생성자, getter, setter 등
}
이 예제에서는 User 엔티티를 생성했습니다. @Id 어노테이션은 엔티티의 기본 키를 나타내며, @GeneratedValue 어노테이션은 기본 키 생성 전략을 지정합니다.
이제 레포지토리 인터페이스를 생성합니다. 레포지토리 인터페이스는 데이터 접근 로직을 정의하는 인터페이스로, 스프링 데이터 JPA에서 사용됩니다. 레포지토리 인터페이스는 JpaRepository 인터페이스를 상속받아 기본적인 CRUD(Create, Read, Update, Delete) 작업을 지원합니다.
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
이 예제에서는 UserRepository 인터페이스를 생성하였습니다. 이렇게 생성된 레포지토리 인터페이스를 사용하면 데이터베이스와의 상호작용을 쉽게 처리할 수 있습니다.
예를 들어, 사용자를 저장하려면 다음과 같이 작성할 수 있습니다.
@Autowired
private UserRepository userRepository;
public void saveUser(User user) {
userRepository.save(user);
}
이상으로 데이터베이스 연동 기초에 대해 알아보았습니다. 다음 섹션에서는 웹 개발 기초에 대해 알아보겠습니다.
2023.05.03 - [프로그래밍/스프링부트(Spring Boot) 기초부터 ~] - [스프링 부트(SpringBoot)] 스프링 부트의 핵심 기능
'GD's IT Lectures : 기초부터 시리즈 > 스프링부트(Spring Boot) 기초부터 ~' 카테고리의 다른 글
[스프링 부트(SpringBoot)] RESTful API 개발 기초 (0) | 2023.05.03 |
---|---|
[스프링 부트(SpringBoot)] 웹 개발 기초 (0) | 2023.05.03 |
[스프링 부트(SpringBoot)] 스프링 부트의 핵심 기능 (0) | 2023.05.03 |
[스프링 부트(SpringBoot)] 환경 설정 및 프로젝트 생성 (0) | 2023.05.03 |
[스프링 부트(SpringBoot)] 스프링 부트 소개 (0) | 2023.05.03 |
댓글