데이터 저장하기(create), 조회하기(read)
만약에 findById(2L)을 적으면 실행시켰을 때 살짝 올려보면 "해당 아이디가 존재하지 않습니다" 라는 에러원인을 볼 수 있다.
Service
- 스프링의 구조는 크게 3가지 영역으로 나눌 수 있다.
- Controller:
- 가장 바깥 부분, 요청/응답을 처리함.
- 요청이 들어오면 요청을 받아주는 자동응답기
- Service:
- 중간 부분, 실제 중요한 작동이 많이 일어나는 부분 -> 지금 해볼 부분!
- DB에서 꺼내오는 녀석과 응답하는 녀석 사이의 연결고리
- Update는 밖에서 요청이 들어오면 그걸 DB에 전달을 해줘야하는데 이때 Service를 활용 해야한다.
- Repo:
- 가장 안쪽 부분, DB와 맞닿아 있음
-> 여태 우리가 배운거(Repo, Entity)
Service 만들기
1. course class에 update method 추가!public void update(Course course) { this.title = course.title; this.tutor = course.tutor; }
- src > main > java > com.sparta.week02 > service 패키지 생성
- CourseService.java 만들기
- 3에 코드 추가!
@Service // 스프링에게 이 클래스는 서비스임을 명시 public class CourseService { // final: 서비스에게 꼭 필요한 녀석임을 명시 private final CourseRepository courseRepository; // 생성자를 통해, Service 클래스를 만들 때 꼭 Repository를 넣어주도록 // 스프링에게 알려줌 public CourseService(CourseRepository courseRepository) { this.courseRepository = courseRepository; } @Transactional // SQL 쿼리가 일어나야 함을 스프링에게 알려줌 public Long update(Long id, Course course) { Course course1 = courseRepository.findById(id).orElseThrow( () -> new IllegalArgumentException("해당 아이디가 존재하지 않습니다.") ); course1.update(course); return course1.getId(); } }
업데이트 하면 :
update 이후 강의 내용이 바뀐 걸 볼 수 있다.