코딩공부/Java Spring

[spring 실습] 게시판 만들기 - 글 삭제 기능 만들기

integerJI 2020. 12. 30. 22:50

[spring 실습] 게시판 만들기 - 글 삭제 기능 만들기


[spring 실습] 게시판 만들기 - 글 수정 기능 만들기 : integer-ji.tistory.com/342

 

[spring실습] 게시판 만들기 - 글 수정 기능 만들기

[spring실습] 게시판 만들기 - 글 수정 기능 만들기 [spring실습] 게시판 만들기 - 글 쓰기 기능 만들기 : integer-ji.tistory.com/341 [spring실습] 게시판 만들기 - 글 쓰기 기능 만들기 [spring실습]게..

integer-ji.tistory.com

이어서 진행됩니다.


Delete 쿼리문 추가하기

<delete id="deleteProject">
	DELETE FROM 
		TB_PROJECT
	WHERE
		PRO_ID = #{proId} 
</delete>

 

Oracle의 Delete문입니다.

 

Delete문은 데이터를 삭제하므로 주의해야 하는 Sql문입니다.

 

 

DAO 설정

void deleteProject(int proId);

 

Delete문을 추가하여 줍니다.

 

Delete문을 사용하며 insert, update와 다른 점은 projectVO의 모든 값을 넘겨주는 것이 아닌.

 

int proId 값만 넘겨줍니다.

 

왜냐하면 delete는 이미 작성되어있는 글의 pk 값인 proId 파라미터만 있어도 가능하기 때문입니다.

 

 

Service Delete문 추가

void deleteProject(int proId);

 

Service에 DAO 연결

 

@Override
public void deleteProject(int proId) {
	projectMapper.deleteProject(proId);
}

 

 

다시 ServiceImpl에 가져옵니다.

 

 

Controller 추가

	/**
	 * 글을 삭제합니다.
	 * @return
	 */
	@RequestMapping(value = "/projectDelete.do")
	public String projectDelete(int proId) {

		projectService.deleteProject(proId);
		
		return "redirect:/projectList.do";
	}

 

글을 삭제하는 Api에는 proId만 가져와 줍니다 

 

 

projectList.jsp 삭제 추가

<td><a href="${path}/projectDelete.do?proId=${item.proId}">삭제</a></td>

 

삭제 버튼을 누를 경우 해당 proId의 값을 파라미터로 넘겨줍니다.

 

 

Test

 

삭제

 

 

8번 글이 정상 삭제되었습니다.

 

Delete문에 사용에 대한...

더보기

하지만 제가 겪은 실전에서는 Delete문을 최소한으로 사용합니다.

왜냐하면 모든 게시글, 정보는 모두 History가 되기 때문이죠

 

특히 게시글처럼 기록이 남아야 한다면 Table에 deleteYn이라는 Column을 추가하여

 

"Y" 혹은 "N"으로 컨트롤하여 노출을 표시하여 줍니다.

 

참고 GitHub : github.com/integerJI/spring.git