반응형
1. 동적쿼리
SELECT COLUMN_ID01
, COLUMN_ID02
, COLUMN_ID03
, COLUMN_ID04
FROM TABLE_NAME
<where>
AND COLUMN_ID01 = #{columnId01}
<!-- if -->
<if test="columnId02 != '' and columnId02 != null">
AND COLUMN_ID02 = #{columnId02}
</if>
<!-- choose -->
<choose>
<when test="columnId03 != '' and columnId03 != null">
AND COLUMN_ID03 = #{columnId03}
</when>
<otherwise>
AND COLUMN_ID04 = #{columnId04}
</otherwise>
</choose>
</where>
2. #$
- # 은 문자열 ( String ) / '' 을 붙이고 들어온다.
- $ 글자그대로....음...예제고~ / '' 없이 문자 그대로... / number 타입만 들어올 경우 사용해도 될듯하다.
SELECT COLUMN_ID01
, COLUMN_ID02
, COLUMN_ID03
, COLUMN_ID04
FROM TABLE_NAME
<where>
// columnId01 이 'code01' 이라는 값이 들어올 경우
AND COLUMN_ID01 = #{columnId01} // 'code01'
AND COLUMN_ID01 = ${columnId01} // code01
</where>
3. include sql / property
- 임시파일 두개가 있다고 가정하에 common_sql.xml , custom_sql.xml
- include sql 에 parameter 를 넘기기 위해서 property 를 사용
- common_sql.xml
// common_sql.xml
<mapper namespace="common">
<sql id="xxxxHeader">
SELECT COUNT(*) OVER() AS CNT
, SQLRSLT.*
FROM (
</sql>
<sql id="xxxxFooter">
) SQLRSLT
WHERE 1=1
</sql>
<sql id="xxxCondition">
AND ${columnName} = ${columnValue}
// columnValue 에서 #{columnId05} 라고 작성을 해도 값은 들어오지만,
// custom_sql.xml 에서만 사용가능하다.
// 다수의 화면 및 다수의 sql.xml 사용을 위해서 네임을 지정하고 사용한다.
</sql>
</mapper>
- custom_sql.xml
// custom_sql.xml
<mapper namespace="custom">
<select id="selectXxxxxxList" resultType="Map">
<include refid="common.xxxxHeader"/>
SELECT COLUMN_ID01
, COLUMN_ID02
, COLUMN_ID03
, COLUMN_ID04
, COLUMN_ID05
FROM TABLE_NAME
<where>
<include refid="common.xxxCondition">
<property name="columnName" value="COLUMN_ID05" />
<property name="columnValue" value="#{columnId05}" />
</include>
</where>
<include refid="common.xxxxFooter"/>
</select>
</mapper>
반응형
'IT > Java' 카테고리의 다른 글
Spring Integration (0) | 2023.08.17 |
---|---|
[Java] java.nio.file.Files 클래스 (0) | 2022.10.31 |
[Java] NIO 기본동작방식 및 개념? (1) | 2022.10.11 |
[Java] Socket 통신 샘플 소스 (0) | 2022.10.06 |
enum 열거형 (0) | 2022.07.22 |
디폴트 메서드(default method) (0) | 2022.07.08 |
[람다식] JAVA에서의 람다식/기본편 (0) | 2022.07.08 |
[개발환경] 이클립스 / JDK (0) | 2022.06.20 |
1. 전자정부프레임워크 기본설정 (0) | 2020.05.19 |
CORS / httpUrlConnection 예제 (0) | 2020.02.03 |