Spring boot로 Rest API 만들기 간단 예제 (3)입니다.
이번에는 CRUD Service 단을 만들어보겠습니다.
0. 이전 글 참고
- [SPRING BOOT] REST API 간단 예제 - (1) 프로젝트 생성
- [SPRING BOOT] REST API 간단 예제 - (2) DB, VO, DAO, XML
1. 환경
- Visual Studio Code : 1.61.2 version
- Spring boot : 2.6.2 version / gradle
- java 11
2. BookInfoService.java
package com.test.demo.service;
import java.util.List;
import com.test.demo.vo.BookInfoVO;
public interface BookInfoService {
List<BookInfoVO> selectAllBookInfo();
BookInfoVO selectByKey(String book_key);
void insertBookInfo(BookInfoVO bookInfo);
void updateBookInfo(String book_key, BookInfoVO bookInfo);
void deleteBookInfo(String book_key);
}
- select, insert, update, delete 기능 서비스를 만들 메서드들을 인터페이스에 선언합니다.
3. BookInfoServiceImpl.java
package com.test.demo.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.test.demo.dao.BookInfoDAO;
import com.test.demo.vo.BookInfoVO;
@Service
public class BookInfoServiceImpl implements BookInfoService {
@Autowired
BookInfoDAO bookInfoDAO;
@Override
public List<BookInfoVO> selectAllBookInfo() {
return bookInfoDAO.selectAllBookInfo();
}
@Override
public BookInfoVO selectByKey(String book_key) {
return bookInfoDAO.selectByKey(book_key);
}
@Override
public void insertBookInfo(BookInfoVO bookInfo) {
bookInfoDAO.insert(bookInfo);
}
@Override
public void updateBookInfo(String book_key, BookInfoVO updateBookInfo) {
BookInfoVO bookInfo = bookInfoDAO.selectByKey(book_key);
if (bookInfo != null) {
bookInfo.setBook_key(updateBookInfo.getBook_key());
bookInfo.setBook_reg_no(updateBookInfo.getBook_reg_no());
bookInfo.setBook_title(updateBookInfo.getBook_title());
bookInfo.setBook_author(updateBookInfo.getBook_author());
bookInfo.setBook_publisher(updateBookInfo.getBook_publisher());
bookInfoDAO.update(bookInfo);
} else {
throw new IllegalStateException("책이 존재하지 않습니다.");
}
}
@Override
public void deleteBookInfo(String book_key) {
if (bookInfoDAO.selectByKey(book_key) != null) {
bookInfoDAO.delete(book_key);
} else {
throw new IllegalStateException("책이 존재하지 않습니다.");
}
}
}
- 앞서 만든 인터페이스를 implements 해줍니다.
- 선언해두었던 메서드들을 Override 시킨 후 내용을 추가했습니다.
- select 함수는 두 가지입니다.
- 전체 책 목록을 조회하는 selectAllBookInfo, 해당 book_key 값을 갖는 책만 불러올 selectByKey입니다.
- update와 delete 같은 경우는 book_key를 통해 검색한 후, 수정 혹은 삭제를 합니다.
- 이때, 해당 키를 가진 데이터가 없을 수도 있으므로 throw exception 처리를 해주었습니다.
4. 다음 글 참고
- [SPRING BOOT] REST API 간단 예제 - (4) Controller, Postman 출력
- [SPRING BOOT] REST API 간단 예제 - (5) Swagger UI 설정
- [SPRING BOOT] REST API 간단 예제 - (6) Swagger UI 꾸미기
이상으로 Rest API 간단 예제 만들기에서 Service 단을 구현해보았습니다.
'Web Developer's Story > SPRING BOOT' 카테고리의 다른 글
[SPRING BOOT] REST API 간단 예제 - (6) Swagger UI 꾸미기 (0) | 2022.03.02 |
---|---|
[SPRING BOOT] REST API 간단 예제 - (5) Swagger UI 설정 (0) | 2022.02.25 |
[SPRING BOOT] REST API 간단 예제 - (4) Controller, Postman 출력 (0) | 2022.02.22 |
[SPRING BOOT] REST API 간단 예제 - (2) DB, VO, DAO, XML (0) | 2022.02.14 |
[SPRING BOOT] REST API 간단 예제 - (1) 프로젝트 생성 (0) | 2022.02.10 |