Notice
Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 설정
- Eclipse
- springboot
- jsp
- 스프링
- 깃허브
- 셋업
- 필터체인
- MySQL
- 깃허브 간단요약
- 폼태그
- Spring
- 이클립스
- jquery
- SESSION
- 자바스크립트
- 오라클
- 마이바티스
- jstl
- Oracle
- 알고리즘
- jsp 내부객체
- 설치
- 자바
- 면접
- 제이쿼리
- 버튼
- java
- html
- EL태그
Archives
- Today
- Total
은은하게 코드 뿌시기
[마이바티스/Mybatis] 문법 종류 - 기본/CDATA/동적쿼리 본문
728x90
종류 | 예시 |
<select></select> | |
<insert></insert> | |
<update></update> | |
<delete></delete> | |
CDATA 사용하기 | |
<![CDATA[태그가아니라실제쿼리에 필요한코드]> | <![CDATA[<=]]> <![CDATA[>=]]> <![CDATA[&]]> <![CDATA[||]]> <![CDATA[ SELECT * FROM TESTTABLE WHERE TESTCOL3 >= 40 ]]> |
동적쿼리 | |
<if></if> : 단일조건 |
<if test='조건'> 조건이 참일때 추가될문장 </if> |
<choose>,<when><otherwise> : 다중조건 |
<choose> <when test='조건1'> 조건1에 해당하는 실행문 </when> <when test = '조건2'> 조건2에 해당하는 실행문 </when> <otherwise> 조건1,조건2 이외의 경우에 실행문 </otherwise> </choose> |
<where> : 동적 sql where 내부에 if,choose문등으로 조건을 걸어 사용 할 수 있다. where 내부코드가 추가되는 경우 동적으로 where 키워드를 붙이고, 가장 앞에 해당되는 AND나 OR를 지워줍니다. |
SELECT * <WHERE> <if test='조건1'> AND TESTCOL = 'T1' </if> <if test='val1 != null and val1 !="" '> AND TESTCOL2 = #{val1} </if> </WHERE> FROM TESTTABLE |
<set> : 동적 sql 동적으로 set키워드르 붙이고 필요없는 컴마를 제거합니다. |
UPDATE TESTTABLE <set> <if test='val1 == c1'> TESTCOL2 = #{val1} , </if> <if test='val2 != null and val2 !=""'> TESTCOL3 = #{val2} , </if> </set> |
<trim> : 동적 sql 접두사, 접미사를 추가하거나오버라이딩하여 커스텀 할 수있게 동적 쿼리를 만들 수있습니다. prefix : 실행될 쿼리의 가장 앞에 문자를 추가합니다. prefixOverrides : 실행될 쿼리의 가장 앞에 해당하는 문자가 있는 경우 지워줍니다. suffix : 실행될 쿼리의 가장 뒤에 문자를 추가합니다. suffixOverrides : 실행될 쿼리의 가장 뒤에 해당하는 문자가 있는 경우 지워줍니다. |
<trim prefix="문자열" prefixOverrides="문자열" suffix="문자열" suffixOverrides="문자열"> 실행될 쿼리 </trim> |
<foreach> : 동적 sql 반복문, List,배열 객체가 파라미터로 넘어올 경우 반복하여 처리 collection : 컬렉션파라미터, 받아온 반복가능한 객체 item : 현재 반복되는 값을 저장할 변수 index : 현재 반복 되는 인덱스 값을 저장할 변수 open : 쿼리가 실행될 때 앞에 추가될 접두사(시작문자열) close : 쿼리가 실행될때 끝에 추가될 접미사(종료문자열) separator : 컬렉션이 반복될 때 추가되 문자 ( 구분자 문자열) |
<select id ="selectTestTable" parameterType="hashMap" resultType ="hashMap" > SELECT * FROM TESTTABLE WHERE TESTCOL2 IN <foreach collection="hmparam" itme="items" open="(" seperator="," close=")"> #{items.val1} </foreach> </select> |
<selectKey> : 다중쿼리 마이바티스 쿼리문을 실행하기전 <selectKey> 태그안에 쿼리를 이전 혹은 이후에 수행하여 조회된 결과를 파라미터로 사용 할 수잇습니다. <selectKey> 의 결과로 나오는 데이터의 row수는 1개 여야 합니다. resultType : 결과의 타입 keyProperty : selectKey구문의 결과가 세팅될 대상 프로퍼티 keyColumn : 리턴되는 결과셋의 컬럼명은 프로퍼티에 일치, 여러개의 컬럼을 사용하는 경우 콤마를 사용해서 구분, order : 쿼리 수행순서(BEFORE, AFTER) before : #{프로퍼티명} 으로 바인드 변수 사용할 수있음. after : 자바단에서 AFTER로 보낸 값 사용할 수있음, 바인드 변수 불가. |
<insert id="insertTEST" parameterType="hashMap"> <selectKey keyProperty="nextVal" resultType="int" order="BEFORE"> SELECT SEQ_TEST.NEXTVAL FROM DUAL </selectKey> INSERT INTO TESTTABLE( TESTSEQ, TESTCOL1, TESTCOL2 ) VALUES ( #{nextVal} , #{val1}, #{val2} ) </insert> |
728x90
Comments