반응형

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 단을 구현해보았습니다.


 

반응형