board-service

2024. 4. 11. 16:35개발일지

package com.example.board.Service;

import com.example.board.DTO.BoardDTO;
import com.example.board.Entity.BoardEntity;
import com.example.board.Repository.BoardRepository;
import lombok.RequiredArgsConstructor;
import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Service;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;

//HTML 및 데이터베이스의 값을 가공해서 원하는 결과처리
//Repository를 불러와서 작업
@Service
//클래스를 자동으로 생성
@RequiredArgsConstructor
public class BoardSerivce {
    private final BoardRepository boardRepository;
    private final ModelMapper modelMapper;
    
    //레코드에 값을 저장(html->DTO->Entity->데이터베이스)
    public void create(BoardDTO boardDTO) {
        //DTO를 Entity로 변환
        BoardEntity boardEntity = modelMapper.map(boardDTO, BoardEntity.class);
        boardRepository.save(boardEntity); //데이터베이스 저장
    }
    
    //레코드에 값을 수정저장(html->DTO->Entity->데이터베이스)
    public void update(BoardDTO boardDTO) {
        //존재여부 판별
        //DTO를 Entity로 변환
        BoardEntity boardEntity = modelMapper.map(boardDTO, BoardEntity.class);
        boardRepository.save(boardEntity); //데이터베이스 저장
    }
    
    //레코드에 값을 삭제(html->id->데이터베이스)
    public void delete(Integer id) {
        boardRepository.deleteById(id); //데이터베이스에서 삭제
    }
    
    //전체조회(html->데이터베이스->List<Entity>->List<DTO>->Controller
    public List<BoardDTO> findall(){
        List<BoardEntity> boardEntities = boardRepository.findAll(); //데이터베이스에 읽기
        List<BoardDTO> boardDTOS = Arrays.asList(modelMapper.map(boardEntities,
                BoardDTO[].class));
        return boardDTOS;
    }
    
    //개별조회(html->id->Optional<Entity>->DTO->Controller
    public BoardDTO findbyid(Integer id) {
        Optional<BoardEntity> boardEntity = boardRepository.findById(id); //읽기
        BoardDTO boardDTO = modelMapper.map(boardEntity, BoardDTO.class);
        return boardDTO;
    }
}

'개발일지' 카테고리의 다른 글

member-service  (0) 2024.04.11
movie-controller  (0) 2024.04.11
member-controller  (0) 2024.04.11
board-view  (0) 2024.04.11
board-controller  (0) 2024.04.11