Helmi

게시판 프로젝트 - CRUD 구현 ⑤ 영속 영역 CRUD 구현, UPDATE 본문

SpringBoot

게시판 프로젝트 - CRUD 구현 ⑤ 영속 영역 CRUD 구현, UPDATE

Helmi 2023. 5. 1. 11:27

마지막으로 update 처리.

게시물의 업데이트는 제목, 내용, 작성자 수정한다고 가정.

업데이트시 최종 수정시간을 데이터베이스 내 현재 시간으로 수정

Update는 delete와 마찬가지로 '몇 개의 데이터 수정되었는가' 처리 가능하도록 int 타입으로 메서드 설계 가능

 

BoardMapper.java 인터페이스 일부

package com.board.mapper;

import java.util.List;

import com.board.domain.BoardVO;

public interface BoardMapper {

	public List<BoardVO> getList();
	
	public void insert(BoardVO board);
	
	public void insertSelectKey(BoardVO board);
	
	public BoardVO read(Long bno);
	
	public int delete (Long bno);
	
	public int update (BoardVO board);
}

BoardMapper.xml 일부

	<update id="update">
	update tbl_board
	set title=#{title},
	content =#{content},
	writer =#{writer},
	updateDate = sysdate
	where bno = #{bno}
	</update>

SQL에서 주의 깊게 봐야 하는 부분은 update 칼럼이 최종 수정 시간을 의미하는 칼럼이므로 현재 시간으로 변경해주고 있다는 것, regdate 칼럼은  최초 생성시간이므로 건드리지 않는다.

 

#{title} 같은 부분은 파라미터로 전달된 BoardVO 객체의 getTitle() 같은 메서드들 호출해 파라미터들 처리 됨

 

테스트 코드는 read()이용해 가져온 BoardVO 객체 일부 수정하는 방식이나 직접 BoardVO 객체를 생성해 처리 가능.

 

BoardMapperTests.java 일부

	@Test
	public void testUpdate() {
		BoardVO board = new BoardVO();
		//실행 전 존재하는 번호인지 확인할 것
		board.setBno(5L);
		board.setTitle("수정된 제목");
		board.setContent("수정된 내용");
		board.setWriter("user00");
		
		int count = mapper.update(board);
		log.info("UPDATE COUNT : " + count);
	}

콘솔 - 실행결과