반응형
Spring Boot와 MySQL을 연동하여 데이터베이스를 다루는 방법을 소개합니다. JPA(Hibernate)를 활용하면 객체 중심의 데이터 관리를 쉽게 구현할 수 있습니다.
Spring Boot와 MySQL 연동의 장점
- 자동 설정 지원 - application.properties 설정만으로 MySQL 연동 가능
- JPA와 Hibernate 지원 - 객체 지향적 데이터베이스 접근 가능
- 손쉬운 데이터 관리 - CRUD(Create, Read, Update, Delete) 기능 제공
MySQL 설정 및 연동
먼저, MySQL을 설치하고 데이터베이스를 생성합니다.
CREATE DATABASE springboot_db;
CREATE USER 'springuser'@'localhost' IDENTIFIED BY 'springpassword';
GRANT ALL PRIVILEGES ON springboot_db.* TO 'springuser'@'localhost';
FLUSH PRIVILEGES;
Spring Boot 프로젝트 설정
Spring Boot 프로젝트에서 MySQL을 사용하기 위해 application.properties
또는 application.yml
을 설정합니다.
spring.datasource.url=jdbc:mysql://localhost:3306/springboot_db?serverTimezone=UTC&characterEncoding=UTF-8
spring.datasource.username=springuser
spring.datasource.password=springpassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
엔터티(Entity) 및 JPA Repository 생성
아래는 간단한 `User` 엔터티와 JPA Repository 구현 코드입니다.
import jakarta.persistence.*;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// 기본 생성자 및 getter, setter 추가
}
Spring Data JPA Repository
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
REST API 컨트롤러 구현
간단한 CRUD API를 만들기 위한 `UserController`를 생성합니다.
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/users")
public class UserController {
private final UserRepository userRepository;
public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}
@GetMapping
public List<User> getUsers() {
return userRepository.findAll();
}
@PostMapping
public User createUser(@RequestBody User user) {
return userRepository.save(user);
}
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User updatedUser) {
return userRepository.findById(id).map(user -> {
user.setName(updatedUser.getName());
user.setEmail(updatedUser.getEmail());
return userRepository.save(user);
}).orElseThrow(() -> new RuntimeException("User not found"));
}
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable Long id) {
userRepository.deleteById(id);
return "삭제 완료!";
}
}
Postman을 활용한 API 테스트
Spring Boot 애플리케이션을 실행한 후, Postman을 사용하여 API 요청을 테스트할 수 있습니다.
- GET 요청:
http://localhost:8080/api/users
- POST 요청:
http://localhost:8080/api/users
(Body에 JSON 데이터 추가) - PUT 요청:
http://localhost:8080/api/users/{id}
(업데이트할 데이터 전송) - DELETE 요청:
http://localhost:8080/api/users/{id}
Spring Boot와 MySQL 학습 추천 자료
- 📌 MySQL 공식 튜토리얼
- 📌 Postman을 활용한 API 테스트
- 📌 GitHub 오픈소스 프로젝트 참여
마무리
Spring Boot와 MySQL을 연동하면 데이터베이스 기반 웹 애플리케이션을 쉽게 개발할 수 있습니다. JPA를 활용하면 객체 중심으로 데이터를 관리할 수 있으며, REST API와 결합하면 강력한 백엔드를 구축할 수 있습니다.
반응형