-
*해당 프로젝트 기술은 메아리 프로젝트에서 제가 담당했었던 기능 분야 쪽만 기술 합니다!! 이외엔 팀원들과의 합작입니다.
게시글 삭제 역시 Param의 형식으로 ArticleNO을 받아오고 해당 값을 이용해서 DB의 있는 값들을 삭제한다.
com.mySpring.myapp.sns.controller.removeArticle
try { snsService.removeArticle(articleNO); File destDir = new File(ARTICLE_IMAGE_REPO+"/"+articleNO); FileUtils.deleteDirectory(destDir); message = "<script>"; message += " location.href='"+request.getContextPath()+"/sns/new';"; message +=" </script>"; resEnt = new ResponseEntity(message, responseHeaders, HttpStatus.CREATED); }catch(Exception e) { message = "<script>"; message += " alert('dont remove this article.');"; message += " location.href='"+request.getContextPath()+"/sns/new';"; message +=" </script>"; resEnt = new ResponseEntity(message, responseHeaders, HttpStatus.CREATED); e.printStackTrace(); }
게시글 번호 값으로 사용하여 snsService의 remove를 실행하게 해준다.
그 후로는 기타 처리 과정 (삭제 후 페이지 이동, 서버 내 파일 삭제)이다.
com.mySpring.myapp.sns.service.removeArticle
@Override public void removeArticle(int articleNO) throws Exception { snsDAO.deleteArticleImage(articleNO); snsDAO.deleteArticle(articleNO); }
해당 게시글은 image를 담아놓는 테이블과 게시글 내용을 담아 놓는 테이블을 두 개 사용하므로 두 개를 동시에 삭제할 수 있도록 한다. 단, 해당 테이블에선 image가 article에 자식 요소로 사용되고 있었으므로, 테이블 삭제할 때 규칙에 따라서 자식을 먼저 삭제한 후, 게시글을 삭제하면 된다.
com.mySpring.myapp.sns.dao.deleteArticle/deleteArticleImage
@Override public void deleteArticle(int sns_articleNO) throws DataAccessException { sqlSession.delete("mapper.sns.deleteArticle", sns_articleNO); } @Override public void deleteArticleImage(int sns_articleNO) throws DataAccessException { sqlSession.delete("mapper.sns.deleteArticleImage", sns_articleNO); }
이 역시 DB를 통해서 값들을 처리할 수 있도록 해서, DB의 값을 삭제하는 쿼리문을 실행하게 한다.
'개발 > WEB' 카테고리의 다른 글
Web_ project 진행_7 : JSP을 이용하여 원하는 정보 전달하기 (0) 2021.11.17 Web_ project 진행_6 : Spring 회원 로그인 시스템 (0) 2021.11.05 Web_ project 진행_4 : Spring DB 게시글 내용 가져와서 출력 (0) 2021.11.04 Web_ project 진행_3 : Spring 게시글 리스트 불러오기 (0) 2021.11.04 Web_ project 진행_2 : Spring 회원가입 구현 (0) 2021.11.04 댓글 (비로그인 댓글 허용하지 않습니다.)