데이터와 MyBatis — 실습
XML 의 namespace = 인터페이스의 풀 클래스명. 각 메서드 = 같은 id 의 SQL.
// src/main/java/com/smhrd/mapper/BoardMapper.java
package com.smhrd.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.smhrd.domain.Board;
@Mapper
public interface BoardMapper {
List<Board> selectList();
Board selectOne(int num);
void insert(Board b);
}
com.smhrd.mapper 인가?com.smhrd.domain.Board 인가?<!-- src/main/resources/com/smhrd/mapper/BoardMapper.xml -->
<?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="com.smhrd.mapper.BoardMapper">
<select id="selectList" resultType="com.smhrd.domain.Board">
SELECT num, title, writer, content
FROM myboard ORDER BY num DESC
</select>
<select id="selectOne"
parameterType="int"
resultType="com.smhrd.domain.Board">
SELECT num, title, writer, content
FROM myboard WHERE num = #{num}
</select>
<insert id="insert" parameterType="com.smhrd.domain.Board">
INSERT INTO myboard(title, writer, content)
VALUES(#{title}, #{writer}, #{content})
</insert>
</mapper>
id 가 인터페이스 메서드명과 같은가? (selectList / selectOne / insert)Service 에서 boardMapper.selectList() 를 호출하고 콘솔에서 MyBatis SQL 로그를 확인합니다.
SELECT num, title, writer, content FROM myboard SQL 이 찍혔는가?com.smhrd.mappercom.smhrd.mapper.BoardMappermyboard 쿼리 출력 확인