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>
반응형
'프로그래밍 > Mybatis' 카테고리의 다른 글
[MyBatis] Cause: java.sql.SQLDataException: Cannot determine value type from string 해결 (0) | 2023.06.02 |
---|---|
[Mybatis] #{}와 ${} 차이 (0) | 2023.05.30 |
[Mybatis] Cause: java.lang.NumberFormatException: For input string: "Y" 에러 해결 방법 (0) | 2022.03.17 |
[Mybatis] <choose>, <when>, <otherwise> 사용법 (0) | 2022.03.11 |
Invalid bound statement (not found) 오류 (0) | 2021.12.15 |