본문 바로가기
Web/Spring

Spring(7) - MyBatis Framework

by SeleniumBindingProtein 2022. 1. 29.
728x90
반응형

1. MyBatis 개요
    1) 자바 오브젝트와 SQL문 사이의 자동 Mapping 기능 지원하는 ORM 프레임워크임.
    2) SQL을 별도 파일로 분리해서 관리.
        - SQL문과 자바 코드의 분리
        - SQL에 변경이 있을때마다 재 컴파일하지 않아도 됨.
    3) SQL을 그대로 이용하면서 도메인 객체나 VO 객체를 중심으로 개발이 가능함.
    4) 퍼시턴스 프레임워크 
    5) XML 형태로 서술된 JDBC 코드라고 할수 있을정도로 JDBC 모든 기능을 제공함.
    6) 데이터소스(DataSource) 기능과 트랜잭션 처리 기능 제공.

2. MyBatis3의 주요 컴포넌트
    1) MyBatis 설정파일(SqlMapConfig.xml)
        - DB 접속 주소 정보, Mapping 파일의 경로 등 고정된 환경정보 설정 
    2) Mapping 파일 (member.xml, board.xml,...)        
        - SQL문과 OR Mapping 설정
    3) SqlSessionFactoryBuilder
    4) SqlSessionFactory
    5) SqlSession
        - 핵심적인 역할하는 클래스
        - SQL실행이나 트랜잭션 관리를 실행함

3. 마이바티스 설정 파일 
    1) SqlMapConfig.xml
        - 데이터베이스 연동 시 반환되는 값을 저장할 빈이나트랜잭션, 데이터소스 등 마이바티스 관련 정보 설정함.

4. SqlSession 클래스에서 제공하는 메서드들 
    1) List selectList(id)
        - id에 대한 select 문 실행한 후 여러 레코드를 List로 반환함
    2) T selectOne(id)
        - id에 대한 select문을 실행한 후 지정한 타입으로 한개의 레코드를 반환함
    3) int insert(id, Object obj)
        - id에 대한 insert문을 실행하면서 obj 객체의 값을 테이블에 추가함
    4) int update(id, Object obj)
        - obj 객체의 값을 조건문의 수정 값으로 사용해 id에 대한 update문을 실행함
    5) int delete(id, Object obj)
         - obj 객체의 값을 조건문의 조건 값으로 사용해 id에 대한 delete문을 실행함            

5. 마이바티스로 조건값 전달 방법
    1) DAO에서 메서드 호출 시 전달된 조건값은 매개변수 이름으로 SQL문의 조건식에 전달
    2) SQL문에서 조건값 사용 방법
        - #{전달된 매개변수이름}

6. 회원 정보 추가 
    - HashMap을 이용해서 추가 

7. 회원 정보 수정 

8. 회원 정보 삭제

9. 동적 SQL문 사용하기
    1) select * from t_member

       select * from t_member
       where id = 'id'

       select * from t_member
       where id = 'id'
       and pwd = '0111'

    2) 주로 SQL 문의 조건절에서 사용함.
       조건절 (where)에 조건을 동적으로 추가. 
       JSTL과 XML 기반으로 동적 SQL문 작성.

    3) 마이바티스 동적 SQL문 구성 요소
        - if 
        - choose(when, otherwise)
        - trim
        - foreach 

    4) <if> 태그로 동적 SQL문 만들기
       ---------
        -  <where>
                <if test='조건식'>
                    추가할 구문 
                </if>
            </where>        

    5) <choose> 태그로 동적 SQL문 만들기
       -------------
        - <where>
            <choose>
                <when test='조건식1'>
                    구문1
                </when>
                <when test='조건식2'>
                    구문2
                </when>  
                <otherwise>
                    구문 
                </otherwise>              
            </choose>
          </where> 
    
    6) <foreach> 태그로 회원 정보 조회하기
       --------------
<foreach item="item" collection="list" index="index" open="(" colose=")" separator=",">
    #{item}
</foreach>

        - collection 
            : 전달받은 인자 값을 의미
              배열과 List 계열 인스턴스를 전달할 수 있음
              - List 인스턴스 전달 시에는 list로 표시함.
              - 배열 전달 시에는 array로 표시함.
        - index 
            : 접근하는 값의 위치를 나타냄 
              최초 값의 위치는 0 
        - item 
            : 반복문이 실행될 때마다 collection 속성에 지정된 값에 접근하여 차례대로 사용함
        - open 
            : 해당 구문이 시작될 때의 지정한 기호를 추가함 
        - close 
            : 해당 구문이 끝날 때의 지정한 기호를 추가함 
        - separator
            : 한 번 이상 반복될 때마다 반복되는 사이에 지정한 기호를 추가함                                

728x90
반응형

'Web > Spring' 카테고리의 다른 글

Spring(9) - Spring Annotation  (0) 2022.01.29
Spring(8) - Spring Transaction  (0) 2022.01.29
Spring(6) - Spring MVC  (0) 2022.01.29
Spring(4) - IoC와 DI  (0) 2022.01.29
Spring(3) - Spring 의존성 주입  (0) 2022.01.29

댓글