less than 1 minute read

test 코드 작성

  • 게시글의 상태가 Y인 것을 N으로 변경
@Test
@DisplayName("게시글 삭제")
public void deleteTest() {
    int result = 0;
    Board board = null;
    
    result = service.delete(161);
    board = service.findBoardByNo(161); // status: N
    
    assertThat(result).isPositive().isEqualTo(1);
    assertThat(board).isNull(); // status: N이면 조회되지 않기 때문에 null이라고 예상함
}

service 코드 작성

public int delete(int no) {
    int result = 0;
    SqlSession session = getSession();
    
    result = dao.updateStatus(session, no, "N"); // "N": 변경할 status 값도 같이 dao에 넘겨주기
    
    if(result > 0) {
        session.commit();
    } else {
        session.rollback();
    }
    
    session.close();
    
    return result;
}

dao 코드 작성

  • 파라미터로 넘겨줄 값이 int / string으로 자료형 2개
    • 하나로 맞춰서 넘길 수 없기 때문에 HashMap 사용
public int updateStatus(SqlSession session, int no, String status) {
    Map<String, Object> map = new HashMap<>();
    
    map.put("no", no);
    map.put("status", status);
    
    return session.update("boardMapper.updateStatus", map);
}

쿼리문 작성

  • 매개값으로 받은 N으로 상태값 변경
<update id="updateStatus" parameterType="map">
    UPDATE BOARD 
    SET STATUS = #{ status } 
    WHERE NO = #{ no }
</update>

Categories:

Updated: