SQL 매핑을 위한 XML 파일
<mapper namespace="Mapper">
id
설정 - 고유 ID 설정resultType
- SQL 쿼리의 결과 타입 설정(DML문은 사용 X)parameterType
설정 - SQL 구문에서 사용될 파라미터 타입 설정<!--별칭 설정 예시-->
<typeAliases>
<typeAlias type="db.dto.UserDto" alias="userDTO"/>
</typeAliases>
#{}
: PreparedStatement 방식${}
: Statement 방식, 문자or숫자는 그대로 바인딩 (그러나, 보안에 취약)parameterType
의 파라미터 개수가 여러개일 경우<!--Select 형식-->
<select id="" parameterType="" resultType="" resultMap="">
select문 예시
<select id="selectName" resultType="string">
select ename from emp
</select>
<!--Insert, Update, Delete 형식-->
<insert|update|delete id="" parameterType="" >
insert문 예시
<insert id="insert" parameterType="userDTO">
insert into users (name, email, phone)
values (#{name}, #{email}, #{phone})
</insert>
delete문 예시
<delete id="delete" parameterType="int">
delete from emp where empno = #{_parameter}
</delete>
<!-- Min ~ Max 검색 : between A and B -->
<select id="selectMinMax" parameterType="map" resultType="empDTO">
select empno, ename, job, sal, hiredate
from emp
where sal #{min} and #{max}
</select>
<!-- 정렬대상컬럼을 인수로 받아 정렬하기 -->
<select id="selectOrder" parameterType="string" resultType="empDTO">
select empno, ename as empName, job, sal, hiredate
from emp
order by ${_parameter} <!--order by #{_parameter}-->
</select>
order by #{_parameter}
형식 불가능
ex) sal을 기준으로 정렬시 order by #{_parameter}
으로 SQL문장 작성한다면
parameterType="string"
으로 인해 order by 'sal'
처럼 들어가는 것이기 때문에
#
이 아닌 $
사용