본문 바로가기
GD's IT Lectures : 기초부터 시리즈/스프링부트(Spring Boot) 기초부터 ~

[스프링 부트(SpringBoot)] 데이터베이스 연동 기초

by GDNGY 2023. 5. 3.

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)] 스프링 부트의 핵심 기능

 

[스프링 부트(SpringBoot)] 스프링 부트의 핵심 기능

3. 스프링 부트의 핵심 기능 3.1. 의존성 관리 스프링 부트는 개발자가 프로젝트를 진행하는 데 필요한 의존성을 쉽게 관리할 수 있도록 도와줍니다. 스프링 부트는 '스타터(Starter)'라는 의존성 그

gdngy.tistory.com

 

반응형

댓글