Mybatis

주빈·2022년 7월 4일
1

framework

목록 보기
8/11
post-thumbnail

오늘은 Mybatis에 대해 알아보자.

📘 Mybatis란?

  • 데이터의 입력, 조회, 수정, 삭제(CRUD)를 보다 편하게 하기 위해 XML로 구조화한 Mapper 설정 파일을 통해서 JDBC를 구현한 영속성 프레임워크이다.
  • 기존에 JDBC를 통해 구현했던 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 XML 설정을 통해 쉽게 구현할 수 있게 해준다.

📜 Mybatis의 흐름

  • 이전에 JDBC Template을 통해 SQL을 실행하였다면 Mybatis는 해당 흐름을 전용 라이브러리를 통해 대체하여 동작한다고 생각하면 된다.

✅ 참고 - ibatis와 Mybatis

  • 기존에 Apache project에서 ibatis를 운영하던 팀이 Google 팀으로 이동하면서 Mybatis로 이름을 바꾼 것이다.
  • Mybatis는 기존의 ibatis의 한계점이였던 동적 쿼리와 어노테이션 처리를 보강하여 더 나은 기능을 제공한다.
  • 현재 ibatis는 비활성화 상태이고, 기존 ibatis로 만들어진 애플리케이션 지원을 위해 라이브러리만 제공한다.

📜 Mybatis-config

✏ Mybatis의 동작 구조

위의 사용 객체들은 Mybatis 관련 라이브러리에 존재한다.

✏ Mybatis의 내장 별칭

📜 mapper 태그 주요 속성

  • <select> 태그 주요 속성
속성명내용
id구문을 찾기 위해 사용될 수 있는 네임스페이스 내의 유일한 구분자
parameterType구문에 전달될 파라미터의 클래스 명(패키지 경로 포함)이나 별칭
resultType리턴되는 타입의 패키지 경로를 포함한 전체 클래스 명이나 별칭, collection인 경우 list, arrayList로 설정할 수 있다.
resultMap사용할 resultMape의 id를 작성한다.
  • <insert>, <update>, <delete> 태그 주요 속성
속성명내용
id구문을 찾기 위해 사용될 수 있는 네임스페이스 내의 유일한 구분자
parameterType구문에 전달될 파라미터의 클래스 명(패키지 경로 포함)이나 별칭
flushCache이 값을 true로 설정하면 구문이 호출될 때마다 캐시가 지워진다(flush). / (기본 값 : false)
timeout예외가 발생하기 전에 데이터베이스의 요청 결과를 기다리는 최대 시간을 설정한다.
드라이버에 따라 다소 지원되지 않을 수도 있다.
userGeneratedKeysinsert, update에만 적용되며 데이터베이스에서 내부적으로 생성한 키를 받는 JDBC getGeneratedKeys 메서드를 사용하도록 설정한다. (기본 값 : false)
keyPropertyinsert, update에만 적용되면 getGeneratedKeys 메서드나 insert 구문의 selectKey 태그의 설정 select 문의 결과를 저장할 property를 지정한다.(default는 세팅 X)
여러 개의 컬럼을 사용한다면 property 명에 콤마를 구분자로 나열할 수 있다.
profile
누구에게나 필요한 개발자가 꿈

0개의 댓글