[Mybatis] 마이바티스

선형채·2022년 8월 24일
0

프레임워크

목록 보기
1/1
post-thumbnail

마이바티스란?

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

MyBatis API Site : http://www.mybatis.org/mybatis-3/ko

MyBatis 흐름

  • 이전 JDBC Template을 통해 SQL을 실행하였다면
    MyBatis는 해당 흐름을 전용 라이브러리를 통해 대체하여 동작

MyBatis 동작 구조

MyBatis 연동하기

  • 압축 해제 후 mybatis-x.x.x.jar 라이브러리를 프로젝트 내 ‘WEB-INF/lib/’경로에 추가

mybatis-config.xml 작성

  • mybatis-config.xml 최상단에 아래와 같이 xml형식을 지정하여 이하의 설정 내용이 mybatis config 설정임을 선언

xml 태그

  • <configuration> : 최상위 태그를 작성하고 내부에 필요한 설정 작성

  • <properties> : 외부 properties파일의 내용을 불러 올 때 사용

예시

<properties> 설정 값 활용

  • <settings>태그 : MyBatis구동 시 선언할 설정 작성

예시

  • <typeAliases> 태그 : MyBatis에서 사용할 자료형의 별칭 선언

예시

<typeAliases>
		<typeAlias type="com.sun.mybatis.model.vo.Student" alias = "student"/>
	</typeAliases>
  • <environments>태그 : MyBatis에서 연동할 DataBase 정보 등록
    예시

  • <mappers>태그 : 사용하고자 하는 쿼리문이 정의된 mapper파일 등록

예시

*-mapper.xml 작성

  • xml 최상단에 아래와 같이 xml형식을 지정하여 이하의 설정 내용이
    MyBatis mapper 설정임을 선언

  • 이어서 <mapper>태그를 작성하고 외부에서 접근할 수 있는 이름인
    namespace속성 기입, 이후 작성될 태그들은 <mapper>태그 안에 기록

tag

  • <resultMap>태그 : 조회한 결과를 객체와 Row간의 1:1 매칭이 아닌
    원하는 객체의 필드에 담아 반환하고자 할 때 사용

예시

  • <select>태그 : SQL의 조회구문을 작성 할 때 사용되는 태그, 해당 쿼리를
    외부에서 접근하고자 할 때 namespace.id명을 적어 접근가능

예시

<select>태그 주요 속성

  • id : 구문을 찾기 위해 사용될 수 있는 네임스페이스 내 유일한 구분자
  • parameterType : 구문에 전달될 파라미터의 클래스 명(패키지 경로 포함)이나 별칭
  • resultType : 리턴되는 타입의 패키지 경로를 포함한 전체 클래스 명이나 별칭, collection인 경우 list, arraylist로 설정 가능
  • resultMap : 리턴되는 타입의 필드 명이 다를 때 사용하며 직접 이름을 지정하여 매칭

※ resultMap과 resultType은 둘 모두를 사용할 수 없으며 둘 중 하나만 선언해야 함

profile
JAVA BACK-END DEVELOPER 👩‍💻

0개의 댓글