본문 바로가기

컴퓨터공학/Spring & Hibernate

Spring> Spring Boot> REST CRUD API 2 (Hibernate)

1. 데이터베이스 개발 환경 구성

2. Spring Initializr로 Spring Boot 프로젝트 생성

3. 직원 리스트 호출

4. 직원 아이디로 직원 정보 호출

5. 새로운 직원 정보 생성

6. 직원 정보 업데이트

7. 직원 정보 삭제

 

 


4. 직원 아이디로 직원 정보 호출

 

구현 클래스에서도 만들어준다. 

 

이것도 hibernate session을 가져오고 

employee 를 얻은 다음 반환하면 된다.

 

원래 @Transactional을 DAO에 붙였는데 Service에 넣어야 하니 없애자. 

 

6. 직원 정보 업데이트

saveOrUpdate는 id가 0이면 insert 이고 0이 아니면 update이다.

 

7. 직원 정보 삭제

 

 

지금까지 dao 메서드를 작성한 것이고 service 레이어에서 기능을 만들자. 

 

 

 

패키지와 인터페이스 만든다.

구현 클래스도 만드는데 @Service 등록하고 DAO와 생성자, crud메서드 만들어 준다. 

아까 dao에서 @Transactional을 뺐으니 service layer에서 넣어야 한다. 

@Service와 @Transactional은 은근하는 실수.. 조심..

 

서비스에 있는 메서드들...

 

 

리스트 가져오기

이제 컨트롤러에서 수정한다.

원래 있던 dao를 service로 고친다.

컨트롤러나 서비스나 dao나 공통 특징이 보이는데 생성자를 통해 주입하는 방식을 사용한다. 신기..

 

저장하고 새로고침해도 똑같은 페이지가 나오는 걸 볼 수 있다. 성공.

 

 

이제 컨트롤러에 추가와 제거하는 기능을 넣자. 

 

 

 

REST API

HTTP Method CRUD Action
POST /api/employees 직원 정보 생성
GET /api/employees 직원 리스트 호출
GET /api/employees/{employeeId} 아이디로 직원 정보 호출
PUT /api/employees 직원 정보 업데이트
DELETE /api/employees/{employeeId} 직원 정보 삭제

이전에 작성한 이 표를 참고해서

 

아이디로 정보 가져오기

 

추가 생성

이전에도 말했지만 id 를 0이라고하면 새로운 직원을 추가한다는 뜻이다.

id가 0이 아니면 업데이트.

PostMapping이니까 JSON으로 보내야 하는 거 잊지 말 것

 

PostMan 어플을 이용했다.. 잘 된다..

 

 

업데이트

 

이번에는 id를 0으로 설정 안 해주니까 JSON에 id 꼭 써야한다.

 

 

삭제

 

URI에 있는 ID로 서비스를 통해 DB에서 찾고 없으면 오류를 뱉는다.

있으면 삭제한다.

 

문제없이 작동한다.