이번 글에서는 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작업은 여기서 마치고 다음글에서 조회를 해보자!
'Spring' 카테고리의 다른 글
[Part 2] 비즈니스 계층 #4 (0) | 2023.01.18 |
---|---|
[Part 2] 게시물 조회/삭제/수정 #3 (0) | 2023.01.18 |
[Part 2] 스프링 프로젝트 구성 #1 (0) | 2023.01.15 |
[Part 1] Spring Controller #10 (0) | 2023.01.15 |
[Part 1] 스프링 MVC #9 (0) | 2023.01.14 |