Spring

[Part 2] BoardVO클래스와 매퍼테스트 #2

충 민 2023. 1. 17. 23:26

이번 글에서는 VO클래스를 생성하고 매퍼테스트를 해보겠다.

 

package를 생성하고 그 밑에 VO클래스를 만든 후 위 사진과 같이 코드를 넣는다.

 

Mapper 인터페이스 작업을 해보자.

BoardMapper라는 인터페이스를 org.zero.mapper 패키지 아래에 생성해준 후 

방금 위에서 만든 VO와의 연결을 확인하기위해 아래와 같이 코드를 작성한다.

 

BoardMapper.java

package org.zero.mapper;

import java.util.List;

import org.zero.domain.BoardVO;

public interface BoardMapper {
	
	List<BoardVO> getList();
}

 

그리고 아래의 사진처럼 org.zero.mapper라는 폴더를 생성하시고 BoardMapper.xml을 생성한다.

 

 

 

 

그 안에는 DTD라는 xml에서 구성이 어떻게 되는지 어떤 태그들을 몇 번 쓸 수 있는지 나오는것이다.

 

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-mapper.dtd">

 <mapper namespace="org.zero.mapper.BoardMapper">
 	
 	<select id="getList" resultType="org.zero.domain.BoardVO">
 	select * from tbl_board order by bno desc
 	</select>
 </mapper>

 

BoardMapper.xml에 DTD를 추가해주시고

resultType은 여기서 select한 결과를 게터 세터 셋메서드 같은 것을 호출해줘 라고 얘기해주는 것이다.

 

 

그리고 테스트할 메서드를 만들어주기위해 클래스 생성하고 아래와같이 코드를 작성하여 실행해주자.

 

 

 

 

 

 

잘 연결되어 원하는 select문을 잘 뽑았다.

 

📌게시물 등록

이제 게시물 등록을 해보자!

 

BoardMapper.java에 insert를 생성해주고

 

 

insert태그도 생성한 후 테스트 해보자

 

 

 

testInsert메서드를 실행시키면?

 

 

 

잘들어갔다. ㅎㅎ

 

솔직히 이번에 하는 건 방금 했던것이 성능이 좋지만 키를 몇번을 잡아올지 아는 것이 좋기때문에 해본다.

 

우선 밑의 3개의 사진처럼 만들어주시고

 

  • order는 어떤 문장을 먼저 실행할지 우선순위를 정해주고
  • keyProperty는 어떤 것에 key를 줄지 정해주고 
  • resultType은 key로 정한 것의 타입을 적으면된다.

 

 

위의 로그들은 차이점을 확인하기위해서다. 어쩃든 여기까지 따라왔다면 실행시켜보자

 

먼저 testInsertSelectKey를 실행시키면??

 

5번이라고 key를 가져온다.

그런데 testInsert를 실행시키면?

 

 

null이 뜬다. 성능은 더 좋지만 key를 가져오지 못한다는 단점이 생긴다. ㅎㅎ 

상황에 따라 비교해서 쓰시면 되겠다.

이제 insert작업은 여기서 마치고 다음글에서 조회를 해보자!