VO 클래스 작성
lombok의 @Data를 사용해서 자동으로 getter, setter 등을 생성했다.
@Data
public class BoardVO {
private Long bno;
private String title;
private String content;
private String writer;
private Date regDate;
private Date updateDate;
}
Mapper인터페이스 작성
MyBatis의 Mapper를 사용해서 테이블을 조회해보겠다.
root-context.xml에서 Mapper 인터페이스의 위치를 알 수 있도록(스캔)
다음 코드를 root-context.xml에 작성한다.
<mybatis-spring:scan base-package="org.zerock.mapper"/>
다음으로 인터페이스를 생성한다.
(@Selct를 통해 인터페이스에서 sql문을 작성했다.)
public interface BoardMapper {
@Select("SELECT * FROM tbl_board where bno>0")
public List<BoardVO> getList();
}
아래 코드를 사용해서 테스트 해보자.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class BoardMapperTests {
@Setter(onMethod_ = @Autowired)
private BoardMapper boardMapper;
@Test
public void testGetList() {
boardMapper.getList().forEach(board -> log.info(board));;
}
}
아래와 같은 결과가 나올 것이다.
Mapper XML 작성
방금은 인터페이스에 sql문을 작성했다.
하지만 sql과 코드를 분리하기 위해서 sql문은 특정한 xml파일에 작성하는 것이 좋다.
namespace : Mapper 인터페이스의 클래스명 (패키지 이름 포함)
<select>문의 id : Mapper 인터페이스에서 메소드명
CDATA : XML에서 <, >와 같은 문자를 태그로 인식하기 때문에 태그가 아니라는 표시를 해줘야한다.
이를 표시해주기 위해서 CDATA를 사용한다.
resultType : 반환받을 유형 , 여기서는 BoardVO객체로 받았다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.zerock.mapper.BoardMapper">
<select id="getList" resultType="org.zerock.domain.BoardVO">
<![CDATA[
SELECT * FROM tbl_board where bno>0
]]>
</select>
</mapper>
XML파일에 sql문을 작성했으므로 인터페이스에서 다음과 같이 @Select문을 지워도 된다.
그리고 위에서 했던 테스트를 다시 한번 해보자.
public interface BoardMapper {
public List<BoardVO> getList();
}
MyBatis와 Mapper의 자세한 내용은 아래 링크를 참조하자.
2021/02/22 - [Spring/코드로 배우는 스프링 웹 프로젝트] - MyBatis의 Mapper 사용하기
MyBatis의 Mapper 사용하기
이전에 공부한것 처럼 SqlSessionFactory를 사용해서 Connection을 얻어 jdbc코딩이 가능하다. 하지만 좀 더 편하게 작업하기 위해서 sql문을 위한 설정을 분리해주는게 낫다. 이를 위해서 MyBatis에 Mapper를
web-developer-backend.tistory.com
'Spring > 코드로 배우는 스프링 웹 프로젝트' 카테고리의 다른 글
[Spring MVC] UriComponentsBuilder 사용하기 (0) | 2021.03.26 |
---|---|
[Spring MVC] AOP 알아보기 (0) | 2021.03.05 |
[게시판 만들기1] 초기 설정하기 (0) | 2021.02.24 |
파일 업로드 처리 (servlet-context.xml) (0) | 2021.02.23 |
컨트롤러 파라미터 수집하기 (0) | 2021.02.23 |