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>
- mybatis에서 사용될 SQL구문을 담고 있는 xml
'업무' 카테고리의 다른 글
마이바티스 문법 모음 (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 |