개요
Mybatis에서 사용되며 매핑 파일에 기재된 SQL문을 호출하기 위한 인터페이스이다.
구조
<?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="boardMapper">
<select id="getBoardList" resultType="BoardPostVO">
SELECT
POST_NO,
TITLE,
NICK_NAME,
POSTING_DATE
FROM board_post
ORDER BY POST_NO DESC;
</select>
<select id="getContent" resultType="BoardPostVO">
<![CDATA[
SELECT *
FROM board_post
WHERE POST_NO = #{post_no}
]]>
</select>
<!-- 게시판 글 작성 -->
<insert id = "insertBoard">
<![CDATA[
INSERT INTO
BOARD_POST(TITLE, CONTENTS, NICK_NAME)
VALUE (#{title}, #{contents}, #{nick_name})
]]>
</insert>
<update id="updateBoard">
<![CDATA[
UPDATE board_post
SET
title = #{title}
content = #{content}
WHERE post_no = #{post_no}
]]>
</update>
<delete id="deleteBoard">
<![CDATA[
DELETE FROM board_post
WHERE post_no = #{post_no}
]]>
</delete>
</mapper>
package kr.co.myboard.dao;
import java.util.List;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import kr.co.myboard.vo.BoardPostVO;
@Repository
public class BoardPostDAO {
@Autowired
private SqlSessionTemplate mybatis;
public void insertBoard(BoardPostVO vo) {
System.out.println("===> Mybatis로 insertBoard() 기능 처리");
mybatis.insert("boardMapper.inserBoard",vo);
}
public void updateBoard(BoardPostVO vo) {
System.out.println("===> Mybatis로 updateBoard() 기능 처리");
mybatis.insert("boardMapper.updateBoard",vo);
}
public void deleteBoard(BoardPostVO vo) {
System.out.println("===> Mybatis로 deleteBoard() 기능 처리");
mybatis.delete("boardMapper.deleteBoard",vo);
}
public BoardPostVO getContent(BoardPostVO vo) {
System.out.println("===> Mybatis로 getContent() 기능 처리");
return (BoardPostVO) mybatis.selectOne("boardMapper.getContent", vo);
}
public List<BoardPostVO> getBoardList() {
System.out.println("===> Mybatis로 getBoardList() 기능 처리");
return mybatis.selectList("boardMapper.getBoardList");
}
}
dao 클래스에서 "mapper namespce.id"형식으로 매퍼의 SQL문을 찾아간다.
mapper의 태그
select: 데이터베이스에서 resultType에 정의된 형식으로 데이터를 가져온다.
insert, update, delete: 데이터를 변경하는 구문인 insert, update, delete SQL에 대한 매퍼
<![CDATA[...]]>: 이란 character data라는 뜻으로 감싸고 있는 영역의 문자들이 xml에서 특수한 기능을 수행하는 문자가 아닌 단순 문자임을 나타낸다.
참고
mybatis.org/mybatis-3/ko/sqlmap-xml.html
'이론정리' 카테고리의 다른 글
web.xml, root-context.xml, servlet-context.xml 이란? (0) | 2020.11.15 |
---|---|
JUnit이란 (0) | 2020.11.15 |
pom.xml(Project Option Model)이란 (0) | 2020.11.15 |