Spring MVC basic_5. CRUD와 TEST를 이용한 INSERT, DELETE, UPDATE

dwanGim·2022년 6월 3일
0

spring_basic

목록 보기
4/41

결과값이 없는 void 메서드 만들기

인터페이스 BoardMapper에 insert와 delete 각각의 void 메서드를 생성해줍니다.

package com.ict.mapper;

import java.util.List;

import com.ict.persistence.BoardVO;

public interface BoardMapper {
	

	public List<BoardVO> getList();

	// insert구문 실행용으로 메서드 선언
	// vo내부에 적혀있는 정보를 이용해 insert를 합니다.
	public void insert(BoardVO vo);
	
	public void delete(long bno);
}

xml 파일에 Mybartis 이용한 쿼리문 만들기


	<insert id="insert">
		INSERT INTO board_tbl (bno, title, content, writer)
			VALUES
		(board_num.nextval, #{title}, #{content}, #{writer})
	</insert>
	
	<delete id="delete">
		DELETE FROM board_tbl WHERE bno = #{bno}
	</delete>

insert 문은 insert 태그 내부에

delete 문은 delete 태그 내부에

각각의 필요한 쿼리문을 작성해줍니다.

#{ } 의 중괄호 안에 변수명을 적으면 같은 이름의 변수를 가져오는

request.getParameter와 같은 효과를 냅니다.

EL의 ${param}과 같습니다.

테스트 코드 작성하기

package com.ict.mapper;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.ict.persistence.BoardVO;

import lombok.extern.log4j.Log4j;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
		"file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class BoardMapperTests {

	@Autowired
	private BoardMapper mapper;
	
	
	//@Test
	public void testGetList() {
		log.info("getList 실행");
		log.info(mapper.getList());
	}
	
	@Test
	public void insertTest() {
		// 글 입력을 위해서 BoardVO 타입을 매개로 사용함
		// 따라서 BoardVO를 만들어 놓고
		// setter로 글제목, 글본문, 글쓴이만 저장해둔 채로
		// mapper.insert(vo);를 호출해서 실행여부를 확인하면 됨.
				
		BoardVO vo = new BoardVO();
		
		vo.setTitle("새로운제목");
		vo.setContent("새로운본문");
		vo.setWriter("새로운글쓴이");
		
		mapper.insert(vo);
	}
	
	@Test
	public void deleteTest() {
		
		long bno = 21;
		
		mapper.delete(bno);
	}
	
	
}

테스크 코드는 테스트 어노테이션을 주석 처리해가면서

하나씩 확인해볼 수 있다.

테스트를 하면 콘솔창에서 title, bno와 같은 자원들이

어떻게 활용되는지 알 수 있다.

Update

update도 같은 방식으로 처리할 수 있다.

먼저 mapper 인터페이스에 update를 메서드를 생성한다.

그리고 xml파일에 update 코드를 작성한다.

	<update id="update">
		UPDATE board_tbl SET title = #{title}, content = #{content},
			writer = #{writer}, updatedate = SYSDATE
			WHERE bno = #{bno}
	</update>

oracle sql 문법에 맞게 쿼리문을 작성했다면

Test 코드를 만들러 가면 된다.

	@Test
	public void updateTest() {
		
		BoardVO vo = new BoardVO();
		
		vo.setBno(3);
		vo.setTitle("update Title");
		vo.setContent("update content");
		vo.setWriter("update writer");
		
		mapper.update(vo);
	}
	

이제 테스트를 통해 콘솔창을 확인한다.

오라클 내부에서도 commit 명령어 후에 확인해볼 수 있다.

일단은 여기까지 입니다.

profile
배울 게 참 많네요.

0개의 댓글