[Spring Boot] 게시물 사이트 제작하기 (4) - update / delete

김광일·2024년 9월 10일
0

SpringBoot

목록 보기
7/19
post-thumbnail

1. Update 변경하기

[1] Update 변경하기

1) BoardService.java 수정하기

: [1. 함수선언] updateBoard 함수 선언

@Service
public interface BoardService {
    Board createBoard(Map<String, Object> params);
    Board updateBoard(Map<String, Object> params);

    List<Board> listBoard();

    Board detailBoard(Integer id);
}

2) BoardServiceImpl.java 수정하기

: [2. 함수구현] updateBoard 함수 override하고 기능 구현

@Override
public Board updateBoard(Map<String, Object> params) {
    Board board = boardRepository.findById(Integer.parseInt(params.get("id") + "")).orElseThrow(
            () -> new RuntimeException("")
    );
    board.setTitle(params.get("title").toString());
    board.setContent(params.get("content").toString());
    board.setAuthor(params.get("author").toString());

    boardRepository.save(board);
    return null;
}

3) deatil.html 파일 수정하기

(1) detail_board()

function update_board(){
        $.ajax({
            url : "/api/board/update",
            type : "GET",
            contentType : 'application/json; charset=utf-8',
            data : {
                id: final_id,
                title: $("#detail_board_title").val(),
                content: $("#detail_board_content").val(),
                author: $("#detail_board_author").val(),
            },
            cache : false,
            success : (obj_data, status, xhr) => {
                alert("수정 완료!");
            },
            error: (obj_data, status, error) => {
                alert("error!!");
                alert(JSON.stringify(obj_data));
            }
        })
    }

4) BoardRestController.java 내용 수정하기

: service에서 제공하는 updateBoard로 기능 제공하게끔 수정.

  @GetMapping({"/update"})
  public Board update(@RequestParam Map<String, Object> params) {
     return boardService.updateBoard(params);
  }

[2] 결과 화면


2. Delete 변경하기

[1] Delete 변경하기

1) BoardService.java 수정하기

: [1. 함수선언] deleteBoard 함수 선언

@Service
public interface BoardService {
    Board createBoard(Map<String, Object> params);
    Board updateBoard(Map<String, Object> params);

    List<Board> listBoard();

    Board detailBoard(Integer id);

    Board deleteBoard(Integer id);
}

2) BoardServiceImpl.java 수정하기

: [2. 함수구현] deleteBoard 함수 override하고 기능 구현

@Override
public Board deleteBoard(Integer id) {
    Board board = boardRepository.findById(id).orElseThrow(
            () -> new RuntimeException("")
    );
    boardRepository.delete(board);
    return null;
}

3) deatil.html 파일 수정하기

(1) 글 삭제 버튼 추가하기

<button onclick="delete_board()">
    글 삭제
</button>

(2) delete_board()

function delete_board() {
        $.ajax({
            url: "/api/board/delete",
            type: "GET",
            contentType: 'application/json; charset=utf-8',
            data: {
                id: final_id
            },
            cache: false,
            success: (obj_data, status, xhr) => {
                // alert(JSON.stringify(obj_data));
                alert("삭제되었습니다!");
            },
            error: (obj_data, status, xhr) => {
                alert("error!!");
                alert(JSON.stringify(obj_data));
            }
        });
    }

4) BoardRestController.java 내용 수정하기

: service에서 제공하는 deleteBoard 기능 제공하게끔 수정.

@GetMapping({"/delete"})
public Board delete(@RequestParam Map<String, Object> params) {
    return boardService.deleteBoard(Integer.parseInt(params.get("id") + ""));
}

[2] 결과 화면

profile
안녕하세요, 사용자들의 문제 해결을 중심으로 하는 프론트엔드 개발자입니다. 티스토리로 전환했어요 : https://pangil-log.tistory.com

0개의 댓글