[Spring] 모든 Todo 앱 기능을 H2 데이터베이스와 연결하기

민지·2024년 2월 29일
0

앞선 포스팅에서 Spring Data Jpa로 list 기능을 리팩토링했다면, 이제는 todo의 기타 기능들을 데이터베이스에 연결, 삭제, 업데이트, 추가하는 기능을 해보겠다!

1. addNewTodoPage 메서드 리팩토링

리팩토링의 목적은, Todo 객체에 값들은 전부 설정해주고, 해당 객체에서 값을 가져오는 코드로 수정하는 것.

왜 모든 값들을 Todo 객체에 넣었냐면, 최종적으로 Spring Data Jpa에서 제공해주는 todoRepository의 멤버함수인 save함수를 이용해야 한다. 근데 이때 save 함수의 원형을 살펴보면, 매개변수로 entity를 받는 것을 확인할 수 있다.

모든 입력값들을 잘 받아온 Todo 객체 엔디티가 필요했던 것!

다시 말해, 수정 전 코드에서는 개별 속성을 파라미터로 받은 메서드 addTodo 함수를 사용했다. 하지만, JpaRepository에서 권장되는 방식은 todo를 올바른 값으로 채우고, 간단히 save 메서드를 호출하는 방식이다.

실행결과를 확인해보자.

2. deleteTodo 메서드 리팩토링

이제 Todo 삭제 기능을 리팩토링해보자.

하지만, JpaRepository에서는 다음과 같은 메서드를 제공한다.

3. showUpdateTodoPage 메서드 리팩토링

마찬가지로, JpaRepository에서 제공해주는 멤버함수는 다음과 같다.

하지만 여기서 유의할 점은, findById 리턴값은 Optional을 리턴하기에, Optional에서 Todo를 받기 위해 get()메서드를 함께 써줘야 한다.

4. updateNewTodoPage 메서드 리팩토링

이렇게 JPA와 Spring DATA JPA를 쓰면, 엔디티와 레포지토리의 개념을 사용해서, 데이터베이스에 데이터를 저장하고 받을 수 있었다 !!!!!!!!!!!!!!!




참고 및 출처
이 시리즈는 Udemy 강의의 내용을 정리한 것입니다.
https://www.udemy.com/course/spring-boot-and-spring-framework-korean/

profile
배운 내용을 바로바로 기록하자!

0개의 댓글