Java 객체인 User Class와 MySQL Table에 있는 Column들을 Mapping해보았다. 이번에는 SQL을 작성하지 않고 유저 생성/ 조회/ 업데이트 기능을 리팩토링하는 것을 배워보겠다.
가장 먼저 UserRepository인터페이스를 User 옆에 만들어주는 것 이다.
만들어 둔 UserRepository의 이름을 UseJdbcRepository로 바꿔줘 보겠다.
변수 이름도 바꿔준다!
그 다음으로 main - java - com -group - libraryapp -domain -user에 Java Interface로 새로운 Interface를 만들어준다.
여기에 JpaRepository를 상속 받는다.
UserService의 Class이름은 UserServiceV1으로 바꿔주었다.
그 이유는 Jdbc를 사용하는 코드를 그대로 남겨두기 위해서 이다. 새롭게 작성하는 UserServcie를 작성한 뒤에 비교해 보겠다.
만든 과정을 설명해 보자면 같은 service 폴더 - user 에 UserServiceV2 Class를 만들어주고
@Service 어노테이션을 걸어주었다.
유저 저장 기능 같은 경우에는 save메소드에 객체를 넣어주면 INSERT SQL이 자동으로 생성된다.
save되고 난 후의 User는 id가 들어있게 된다.
조회기능/업데이트 기능 도 아래에 추가해 보겠다.
업데이트 기능 같은 경우 두가지를 고려해야한다.
- id를 이용해 User를 가져와 User가 있는지 없는지 확인하고
- User가 있다면 update 쿼리를 전송해 데이터를 수정한다.
여기까지 사용한 기능을 정리해보면
save : 주어진 객체를 저장하거나 업데이트 시켜준다.
findAll : 주어진 객체가 Mapping된 Table의 모든 데이터를 가져온다.
findById : id를 기준으로 특정한 1개의 데이터를 가져온다.
어떻게 SQL을 작성하지 않아도 동작이 될까?
Spring Data JPA 덕분인데 이는 JPA와는 조금 다르다.
복잡한 JPA코드를 스프링과 함께 쉽게 사용할 수 있도록 도와주는 라이브러리 이다.
아 어려워ㅡㅡ
'기록해보기' 카테고리의 다른 글
스프링프레임워크를 이용한 순수자바 프로젝트 해보기 (0) | 2023.07.04 |
---|---|
Spring Data JPA를 이용해 다양한 쿼리 작성하기 (0) | 2023.06.18 |
유저 테이블에 대응되는 Entity Class만들기 (0) | 2023.06.11 |
문자열 SQL을 직접 사용하는 것이 너무 어렵다!! (0) | 2023.06.11 |
3번째 정리! (0) | 2023.06.11 |
댓글