본문 바로가기
기록해보기

Spring Data JPA를 이용해 자동으로 쿼리 날리기

by titlejjk 2023. 6. 11.

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가 들어있게 된다.

조회기능/업데이트 기능 도 아래에 추가해 보겠다.

업데이트 기능 같은 경우 두가지를 고려해야한다.

  1. id를 이용해 User를 가져와 User가 있는지 없는지 확인하고
  2. User가 있다면 update 쿼리를 전송해 데이터를 수정한다.

여기까지 사용한 기능을 정리해보면

save : 주어진 객체를 저장하거나 업데이트 시켜준다.

findAll : 주어진 객체가 Mapping된 Table의 모든 데이터를 가져온다.

findById : id를 기준으로 특정한 1개의 데이터를 가져온다.

 

어떻게 SQL을 작성하지 않아도 동작이 될까?

Spring Data JPA 덕분인데 이는 JPA와는 조금 다르다.

복잡한 JPA코드를 스프링과 함께 쉽게 사용할 수 있도록 도와주는 라이브러리 이다.

강사님 ppt

아 어려워ㅡㅡ

댓글