。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

업무

[MyBatis] 설정파일

quarrrter 2024. 1. 22. 11:19

MyBatis

데이터 CRUD를 보다 편하게 하기 위해 xml로 구조화하여 Mapper 설정파일을 통해 JDBC를 구현한 영속성 프레임 워크

 

 

 

 

  • mybatis-config.xml
    • mybatis에서 사용될 DB를 연동하기 위한 설정값들과 mapper.xml을 등록하기 위한 xml
    • typeAliases: 매칭할 mapper의 sql태그의 parameter Type 별칭 설정 
    • environments: DB 연결 설정
    • mappers: mapper.xml파일 연결 

 

 

 

  • mybatis-mapper.xml
    • mybatis에서 사용될 SQL구문을 담고 있는 xml
      • XML 과 DTD 선언
    • mapper 태그의 namespace 속성 설정 (Mapper 인터페이스이름과 동일하게 설정)
    • sql문을 담은 태그 설정 
      • id 속성
      • parameterType
      • resultType
        • 패키지 이름을 포함한 전체 클래스명 지정
        • <select id="selectList" resultMap="cohttp://m.atoz_develop.spms.vo.Project">
              select PNO, PNAME, STA_DATE, END_DATE, STATE
              from PROJECTS
              order by PNO desc
          </select>
        • 객체의 ALIAS 지정
        • <!-- MyBatis 설정파일 -->
          <typeAliases>
              <typeAliase type="cohttp://m.atoz_develop.spms.vo.Project" alias="project"/>
          </typeAliases>

          <!-- SQL Mapper 파일 -->
          <select id="selectList" resultMap="project">
              select PNO, PNAME, STA_DATE, END_DATE, STATE
              from PROJECTS
              order by PNO desc
          </select>
        • 컬럼명과 setter 이름이 달라서 값이 저장되지 않는 문제를 해결하려면 SELECT문의 각 컬럼에 as로 alias를 붙이면 된다. 예를 들어 컬럼명이 PNO인데 setter가 setNo()라면 SELECT PNO as NO... 와 같이 작성한다.
      • resultMap
        • resultType 사용할 때 setter와 매칭되지 않는 경우 컬럼마다 alias를 붙여야하는 번거로움 해결
        • <resultMap type="project" id="projectResultMap"> 
              <id column="PNO" property="no" />
              <result column="PNAME" property="title" />
              <result column="CONTENT" property="content" />
              <result column="STA_DATE" property="startDate" javaType="java.sql.Date" />
          </resultMap>

 

'업무' 카테고리의 다른 글

마이바티스 문법 모음  (0) 2024.01.23
[SQL] SELECT 쿼리 실행 순서 처리 과정  (0) 2024.01.22
[ORACLE 함수] SUBSTR  (0) 2024.01.19
[ORACLE 함수] EXISTS & IN  (1) 2024.01.19
[ORACLE 함수] SYSDATE  (1) 2024.01.18