본문 바로가기
프로젝트/REST를 이용한 게시판

REST를 이용한 간단한 게시판(3) - 기능 추가(상세조회,등록,수정,삭제)

by lroot 2022. 10. 4.
728x90
반응형

1. BoardMapper 내용 추가

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.example.board.mapper;
 
import com.example.board.domain.Board;
import org.apache.ibatis.annotations.Mapper;
 
import java.util.List;
 
@Mapper
public interface BoardMapper {
 
    // 게시글 목록 조회
    List<Board> getBoardList();
 
    // 게시글 상세 조회
    Board getBoardDetail(int board_seq);
 
    // 게시글 등록
    int insertBoard(Board board);
 
    // 게시글 수정
    int updateBoard(Board board);
 
    // 게시글 삭제
    int deleteBoard(int board_seq);
 
}
cs

 

2. BoardMapper.xml 내용 추가

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.board.mapper.BoardMapper">
 
    <select id="getBoardList" resultType="com.example.board.domain.Board">
 
        SELECT * FROM RA_BOARD ORDER BY BOARD_SEQ ASC
 
    </select>
 
    <select id="getBoardDetail" parameterType="int" resultType="com.example.board.domain.Board">
 
        SELECT *
          FROM (
                    SELECT BOARD_SEQ
                         , BOARD_WRITER
                         , BOARD_SUBJECT
                         , BOARD_CONTENT
                         , BOARD_HITS
                         , INS_USER_ID
                         , CAST( DATE_FORMAT( INS_DATE, '%Y-%m-%d %H:%i:%s' ) AS CHAR(19) ) AS INS_DATE
                         , UPD_USER_ID
                         , CAST( DATE_FORMAT( UPD_DATE, '%Y-%m-%d %H:%i:%s' ) AS CHAR(19) ) AS UPD_DATE
                      FROM RA_BOARD
                     WHERE BOARD_SEQ = #{board_seq}
                ) RA_BOARD
 
    </select>
 
    <insert id="insertBoard" parameterType="com.example.board.domain.Board">
 
        <selectKey resultType="int" keyProperty="board_seq" order="AFTER">
            SELECT LAST_INSERT_ID()
        </selectKey>
 
        INSERT
        INTO RA_BOARD
        (
        BOARD_WRITER
        , BOARD_SUBJECT
        , BOARD_CONTENT
        , INS_USER_ID
        , INS_DATE
        , UPD_USER_ID
        , UPD_DATE
        )
        VALUES
        (
        #{board_writer}
        , #{board_subject}
        , #{board_content}
        , 'TEST'
        , NOW()
        , 'TEST'
        , NOW()
        )
 
    </insert>
 
    <update id="updateBoard" parameterType="com.example.board.domain.Board">
 
        UPDATE RA_BOARD
           SET BOARD_SUBJECT = #{board_subject}
             , BOARD_CONTENT = #{board_content}
             , UPD_USER_ID = 'TEST'
             , UPD_DATE = NOW()
         WHERE BOARD_SEQ = #{board_seq}
 
    </update>
 
    <delete id="deleteBoard" parameterType="int">
 
        DELETE
          FROM RA_BOARD
         WHERE BOARD_SEQ = #{board_seq}
 
    </delete>
 
</mapper>
cs

 

3. BoardService 내용 추가

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.example.board.service;
 
import com.example.board.domain.Board;
import com.example.board.mapper.BoardMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.List;
 
@Service
public class BoardService {
 
    @Autowired
    private BoardMapper  boardMapper;
 
    //게시글 목록 조회
    public List<Board> getBoardList(){
        return boardMapper.getBoardList();
    }
 
    //게시글 상세 조회
    public Board getBoardDetail(int board_seq){
        return boardMapper.getBoardDetail(board_seq);
    }
 
    //게시글 등록
    public int insertBoard(Board board){
        return boardMapper.insertBoard(board);
    }
 
    //게시글 수정
    public int updateBoard(Board board){
        return boardMapper.updateBoard(board);
    }
 
    //게시글 삭제
    public int deleteBoard(int board_seq){
        return boardMapper.deleteBoard(board_seq);
    }
 
 
}
 
cs

 

4. BoardController 내용 추가

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.example.board.controller;
 
import com.example.board.domain.Board;
import com.example.board.service.BoardService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import java.util.List;
 
@RequestMapping("/board")
@RestController
public class BoardController {
 
    @Autowired
    private BoardService boardService;
 
    // 게시글 목록 조회
    @GetMapping
    public List<Board> getBoardList(){
        return boardService.getBoardList();
    }
 
    // 게시글 상세 조회
    @GetMapping("/{board_seq}")
    public Board getBoardDetail(@PathVariable("board_seq"int board_seq){
        return boardService.getBoardDetail(board_seq);
    }
 
    // 게시글 등록
    @PostMapping
    public Board insertBoard(@RequestBody Board board){
        boardService.insertBoard(board);
        int boardSeq = board.getBoard_seq();
        Board boardDetail = boardService.getBoardDetail(boardSeq);
 
        return boardDetail;
    }
 
    // 게시글 수정
    @PutMapping("/{board_seq}")
    public Board updateBoard(@PathVariable("board_seq"int board_seq, @RequestBody Board board){
        boardService.updateBoard(board);
        Board boardDetail = boardService.getBoardDetail(board_seq);
 
        return boardDetail;
    }
 
    // 게시글 삭제
    @DeleteMapping("/{board_seq}")
    public Board deleteBoard(@PathVariable("board_seq"int board_seq){
        boardService.deleteBoard(board_seq);
 
        Board deleteBoard = new Board();
        deleteBoard.setBoard_seq(board_seq);
 
        return deleteBoard;
    }
 
 
}
 
cs

 

5-1. 결과화면(GET)

 

전체 조회

 

상세 조회

 

 

5-2. 결과화면(POST)

 

5-3. 결과화면(PUT)

 

 

5-4. 결과화면(DELETE)

 

댓글