온 코딩

[Spring](Mybatis) Mapper XML 파일 추가 설명 본문

복습 ARCHIVE/모델별 프로젝트

[Spring](Mybatis) Mapper XML 파일 추가 설명

SummerON 2021. 6. 29. 16:10

Mybatis

마이바티스 프레임워크 구조

SqlMapConfig.xml : Mybatis 메인 환경설정 파일 

 > DBMS 커넥션, SQL Mapper XML 파일 등록

SqlMap.xml : SQL 명령어들을 Map 구조로 저장하여 관리 

> SQL 명령 시 필요한 값들은 input  형태 데이터로 할당, 실행된 SQL이 SELECT 구문 일 때는 output 형태의 데이터로 리턴

 

SQL Mapper XML 파일 구조 

<mapper>를 루트 엘리먼트로 가지는 xml 파일 

namespace 속성과 SQL 아이디 통해 DAO 클래스에서 참조하여 사용

Mapper XML <mapper namespace = "AAAAA">
    <delete id="BBBBB" > delete where seq=#{seq} </delete>
</mapper>
DAO 클래스  public void deleteBoard(BoardVO vo){
    mybatis.delete("AAAAA.BBBBB", vo);
}

1) <select> 앨리먼트

<select id="getBoard" parameterType="board" resultType="board">

id : 생략 불가능 

parameterType : 외부로 부터 값을 전달받아서 사용하는 경우 , 생략 가능

   - full-package 이름 들어가는 경우 :  설정 파일에서 Alias 설정 안했을 경우! 

   - Alias 설정 시 alias속성 이름을 사용 

resultType : 리턴 된 ResultSet을 어떤 자바 객체와 매핑할지 지정한 것, 생략 불가능,resultMap 속성으로 대체 가능

   - alias 값을 사용 가능 

 

2) <insert> 엘리먼트 

 >Board_seq에서 값을 얻어와서 seq에 넣음

3) <update> 엘리먼트

4) <delete> 엘리먼트

 

SQL Mapper XML 추가설정

1. resultMap 속성 사용 

: parameterType 속성으로 맵핑할 수 없는 경우 사용

테이블 칼럼과 객체 변수 명이 다를 때 , resultMap을 통해 맵핑을 함 

<mapper namespace="Board">
	<resultMap id="boardResult" type="board">
    	<id property="seq" column="SEQ" />
        <result property="writer" column="WRITER/>
    </resultMap>
    
    <select id="getBoardList" resultMap="boardResult">
    select writer from board order by seq desc
    </select>
</mapper>

기본키 값은 id로 설정, 나머지는 result로 설정 

 

2. CDATA Selection 

: '<' 를 태그가 아닌 문자열(대소비교문자)로 해석하기 위해 필요

<select id="getBoard">
	<![CDATA[
    select * board where ses <=#{seq}
    ]]>
</select>

3. SQL 대문자로 설정하기

 : SQL 구문을 쉽게 확인하기 위해서 

 

Mybatis JAVA API

: MyBatis 프레임워크에서 제공하는 API를 이용해서 DAO 클래스를 구현 

SqlSessionFactory 에서 SqlSession 객체를 얻어서 사용 

SqlSessionFactoryBuilder의 build() 메소드를이용하여 SqlSessionFactory 객체 생성 

Reader 객체를 통해 환경설정 파일 지정 

 

SqlSession 객체 

1. selectOne() : 결과 값이 반드시 하나

2. selectList() : 결과 값이 하나 또는 여러개 

3. insert(), delete(), update()

Comments