728x90
소개
Spring Data JPA는 데이터베이스 작업을 간소화하는 강력한 도구입니다. 이 가이드는 Spring Boot와 JPA를 통합하여 CRUD 애플리케이션을 구축하는 방법을 설명합니다.
프로젝트 설정
Spring Initializr를 사용하여 새로운 Spring Boot 프로젝트를 생성합니다. "Spring Web", "Spring Data JPA", "H2 Database" 등의 의존성을 추가합니다.
build.gradle
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
엔티티(Entity) 클래스 생성
데이터베이스 테이블과 매핑되는 엔티티 클래스를 생성합니다.
User.java
package com.example.demo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String email;
// Getters and setters
}
리포지토리(Repository) 인터페이스 생성
CRUD 작업을 처리하기 위해 Spring Data JPA 리포지토리를 생성합니다.
UserRepository.java
package com.example.demo;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
서비스(Service) 클래스 생성
비즈니스 로직을 처리하는 서비스 클래스를 생성합니다.
UserService.class
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
// 전체 User 조회
public List<User> getAllUsers() {
return userRepository.findAll();
}
// id값으로 User 조회
public User getUserById(Long id) {
return userRepository.findById(id).orElse(null);
}
// User INSERT
public User saveUser(User user) {
return userRepository.save(user);
}
// id값으로 User삭제
public void deleteUser(Long id) {
userRepository.deleteById(id);
}
}
컨트롤러(Controller) 클래스 생성
HTTP 요청을 처리하는 REST 컨트롤러를 생성합니다.
UserController.java
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping
public List<User> getAllUsers() {
return userService.getAllUsers();
}
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getUserById(id);
}
@PostMapping
public User createUser(@RequestBody User user) {
return userService.saveUser(user);
}
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
User existingUser = userService.getUserById(id);
if (existingUser != null) {
existingUser.setName(user.getName());
existingUser.setEmail(user.getEmail());
return userService.saveUser(existingUser);
} else {
return null;
}
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
userService.deleteUser(id);
}
}
WEB_URL + /users URL을 입력하여 전체 계정을 조회합니다.
문의사항이나 피드백은 댓글로 남겨주세요.
'프로그래밍 언어 > JAVA, SPRING' 카테고리의 다른 글
[SPRING BOOT] 유효성 검사(Validation) (1) | 2024.07.17 |
---|---|
[SPRING BOOT] 스케줄링(Scheduling) (0) | 2024.07.17 |
[SPRING BOOT] Actuator (0) | 2024.07.17 |
[SPRING BOOT] 자동 설정 기능 (0) | 2024.07.17 |
[JPA] 데이터 암/복호화를 위한 @Converter (0) | 2023.10.27 |