- MyBatis SQL : SQL 구문
sql 엘리멘트는 다른 구문에서 재사용가능한 SQL 구문을 정의할 때 사용된다.
로딩시점에 정적으로 파라미터처럼 사용할 수 있다.
<sql id="joinTable">
inner join member using(id)
inner join reply using(username)
</sql>
<select id="listCounsel" resultType="counsel">
select * from board
<include refid="joinTable"/>
</select>
sql 구문에서도 프로퍼티 값을 사용할 수 있다.
<sql id="userColumns">
${alias}.id,${alias}.username,${alias}.password
</sql>
<select id="selectUsers" resultType="map">
select
<include refid="userColumns">
<property name="alias" value="t1"/>
</include>,
<include refid="userColumns">
<property name="alias" value="t2"/>
</include>
from some_table t1
cross join some_table t2
</select>
프로퍼티값은 다음처럼 refid속성이나 include절 내부에서도 사용할 수 있다.
<sql id="sometable">
${prefix}Table
</sql>
<sql id="someinclude">
from
<include refid="${include_target}"/>
</sql>
<select id="select" resultType="map">
select
field1, field2, field3
<include refid="someinclude">
<property name="prefix" value="Some"/>
<property name="include_target" value="sometable"/>
</include>
</select>
- 참고자료
MyBatis – 마이바티스 3 | 매퍼 XML 파일
Mapper XML 파일 마이바티스의 가장 큰 장점은 매핑구문이다. 이건 간혹 마법을 부리는 것처럼 보일 수 있다. SQL Map XML 파일은 상대적으로 간단하다. 더군다나 동일한 기능의 JDBC 코드와 비교하면
mybatis.org