Byeon's NOTE
스프링 부트 Spring Boot(5) - 간단한 게시판 만들기, 게시글 수정 및 삭제 기능 본문
저번 포스팅에서 게시글을 등록하고 조회하는 기능까지 구현하였다. 이번에는 게시글 수정, 삭제 기능을 구현하려한다.
수정, 삭제 기능을 구현하기 위해 먼저 Controller에 코드를 추가한다.
@RequestMapping("/board/updateBoard") // 수정요청
public String updateBoard(BoardDto board) throws Exception {
boardService.updateBoard(board); //게시글 수정
return "redirect:/board/openBoardList"; //수정완료 후 게시판 목록으로
}
@RequestMapping("/board/deleteBoard") //삭제요청
public String deleteBoard(BoardDto board) throws Exception {
boardService.deleteBoard(board.getBoardId()); //게시글 삭제
return "redirect:/board/boardList"; //삭제완료 후 게시판 목록으로
}
Service Interface와 Service Class에 해당요청을 처리하는 코드를 작성한다.
// Service Interface
void updateBoard(BoardDto board) throws Exception;
void deleteBoard(int board_id) throws Exception;
//Service Class
@Override
public void updateBoard(BoardDto board) throws Exception {
boardMapper.updateBoard(board);
}
@Override
public void deleteBoard(int board_id) throws Exception {
boardMapper.deleteBoard(board_id)
}
Mapper Interface와 Mapper XML에 코드를 작성한다.
void updateBoard(BoardDto board) throws Exception;
void deleteBoard(int board_id) throws Exception;
<update id="updateBoard" parameterType="com.example.board.dto.BoardDto">
<![CDATA[
UPDATE t_board
SET title = #{title}, contents = #{contents}, updater_id = 'admin', updated_At = NOW()
WHERE board_id=#{boardId}
]]>
</update>
<update id="deleteBoard" parameterType="int">
<![CDATA[
UPDATE t_board
SET is_deleted = 'y', updater_id = 'admin', updated_At = NOW()
WHERE board_id=#{board_id}
]]>
</update>
이제 다음과 같이 수정해 보자.
결과 화면을 보면 제대로 수정되었다.
그럼 이제 삭제를 해보자.
정상적으로 삭제 되었다. 데이터베이스를 확인해보면 삭제여부에 Y가 들어가 있는것을 확인할 수 있다.
게시판 조회, 추가, 수정, 삭제 모든 기능을 구현해 보았다. 이제 중간에 그냥 넘어간 것을 알아보고자 한다.
mapper.xml파일을 보면 <![CDATA[]]>를 사용한것을 볼 수 있다. 해당 코드를 사용하는 이유는 구분하기 쉽게 하기 위해서 이다. 예를 들면 아래의 코드를 보자.
<select id="insertData" parameterType="package.dto.DataDto">
SELECT *
FROM employee
WHERE salary > 100000
</insert>
이 코드를 보면 WHERE절에 ' > '가 있다. 지금은 간단한 쿼리에서 비교연산이지만 만약 복잡한 쿼리였다면 알아보기 힘들 것이다. 이런것처럼 그냥 사용하면 괄호, 특수문자 등을 사용할때 보기도 어렵고 제한이 있다. 이러한 문제를 해결하기 위해 <![CDATA[]]>를 사용한다. <![CDATA[]]>안의 문장을 하나의 쿼리 문자열로 처리한다.
<select id="insertData" parameterType="package.dto.DataDto">
<![CDATA[
SELECT *
FROM employee
WHERE salary > 100000
]]>
</insert>
'스프링(Spring)' 카테고리의 다른 글
스프링 STS 설치 (0) | 2020.01.17 |
---|---|
스프링 부트 Spring Boot(4) - 간단한 게시판 만들기, 게시글 추가 및 조회 기능 (0) | 2019.10.24 |
스프링 부트 Spring Boot(3) - 간단한 게시판 만들기, 데이터베이스 연동 (0) | 2019.10.23 |
스프링 부트 Spring Boot (2) - 프로젝트 구조 (0) | 2019.10.15 |
스프링 부트 Spring Boot (1) - 프로젝트 생성 (0) | 2019.10.15 |
Comments