프로젝트 일지/Spring Boot & MyBatis - 게시판

등록 & 수정 & 삭제 기능 코드리뷰 및 일부수정

하나비 HANABI 2022. 8. 31. 15:11

 

https://sdevstudy.tistory.com/19

 

[iBATIS/MyBatis]쿼리실행 리턴(Return)결과 차이

INTRO iBATIS를 사용하는 중에 MyBatis와 쿼리문 실행 리턴결과가 다른것을 알았다. 따라서 잊지않기위해 정리해놓으려고 한다. iBATIS와 MyBatis의 리턴결과 차이 iBATIS MyBatis  SELECT  SELECT문에 해당하..

sdevstudy.tistory.com

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=weekamp&logNo=221561895664 

 

Mybatis와 IBatis 리턴결과 차이

Ibatis Query <select> - 성공 : Select문에 해당 결과 - 실패 : 에러 <insert> - 성공 : n...

blog.naver.com

 

BoardController.java를 다음과 같이 수정

	// 게시물 등록
    @PostMapping(value="/insertBoard")
    @ResponseBody
    public String insertBoard (BoardDTO reqDto) throws Exception {
    	   	
    	// mybatis에서 insert의 리턴 결과는 1
    	if (boardService.boardInsert(reqDto) == 1) {  	
    		return "게시물 등록 성공!"; 
    	} else {
    		return "게시물 등록 실패";
    	}
    }
         
    // 게시물 수정
    @PutMapping(value="/updateBoard")
    @ResponseBody
    public String updateBoard (BoardDTO reqDto) throws Exception {
    	   	
    	// mybatis에서 update의 리턴 결과는 업데이트된 행의 갯수 (없으면 0)
    	if (boardService.boardUpdate(reqDto) > 0) {
    		return "게시물 수정 성공!";  		
    	} else {
    		return "게시물 수정 실패";
    	}
    }
    
    // 게시물 삭제
    @DeleteMapping(value="/deleteBoard")
    @ResponseBody
    public String deleteBoard (@RequestParam(value="pIdx") int pIdx) throws Exception {
    	
    	// mybatis에서 delete의 리턴 결과는 삭제된 행의 갯수 (없으면 0)
    	if (boardService.boardDelete(pIdx) > 0) {
    		return "게시물 삭제 성공!";  		
    	} else {
    		return "게시물 삭제 실패";
    	}	   	
    }
    
}

다중 건수를 등록/수정 하는 경우도 있기 때문에 boardService.insert() > 0 이런식으로 표현

 

실패한 케이스를 테스트하려고 하면  
수정/삭제의 경우에는 존재하지 않는 pk로 요청을 날려보면 에러가 떨어질 것이다.
등록 같은 경우에는 not null 인 값을 null로 강제로 한번 날려보거나, 데이터 길이를 테스트하기 쉽게 변경해보고 그거보다 초과한경우를 테스트해고 실패도 잘 떨어지는지 확인!