결과값이 없는 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 명령어 후에 확인해볼 수 있다.
일단은 여기까지 입니다.