728x90
반응형

selectKey

값(인덱스)을 생성하여 DB로 보내줘야 하는 경우 주로 사용


selectKey 사용법 👇

<selectKey keyProperty="seq" resultType="Integer" order="BEFORE">
   SELECT USER_SEQ.NEXTVAL FROM DUAL
</selectKey>

 


selectKey 속성 👇

속성 설명
keyProperty selectKey 구문의 결과가 세팅될 대상 프로퍼티
keyColumn 리턴되는 결과셋의 컬럼명은 프로퍼티와 일치
여러개의 컬럼을 사용한다면 콤마(,)를 사용해서 구분
resultType 결과의 타입
order BEFORE 또는 AFTER를 세팅할 수 있음
BEFORE 👉 키를 먼저 조회하고 그 값을 keyProperty에 세팅한 후 insert 구문 실행
AFTER 👉 insert 구문을 먼서 실행한 후 selectKey 구문 실행
statementType MyBatis는 Statement, PreparedStatement 그리고 CallableStatement을 매핑하기 위해 STATEMENT, PREPARED 그리고 CALLABLE 구문타입을 지원

 


selectKey 예제👇

<insert id="insertNews" parameterType="HashMap">
 	<selectKey keyProperty="seq" resultType="Integer" order="BEFORE">
	   SELECT NEWS_SEQ.NEXTVAL FROM DUAL
	</selectKey>
		INSERT INTO NEWS (
			SEQ,
			TITLE ,
			CONTENT,
			INSERT_ID,
			INSERT_DATE
		)
		VALUES (
			#{seq},
			#{title},
			#{content},
			#{insertId},
			TO_CHAR(SYSDATE,'YYYY-MM-DD')
		)
</insert>

 

multiple selectKey 사용법 👇

<selectKey keyProperty="userId, userName" resultType="hashmap" order="BEFORE">
    SELECT 'KEY1' AS USERID, 'KEY2' AS USERNAME FROM DUAL
</selectKey>
반응형
복사했습니다!