본문 바로가기
Database/MySQL

mapper 에서 selectKey 사용하기

by java나유 2023. 3. 7.

쿼리를 작성하다보면, insert하기 전에 해당 테이블의 정보를 가져와서 그 정보로 insert할 때가 있다.

예를들면, count 가 대표적인다.

 

내가 붕어빵을 1번째 구매했으면 1로 insert

그리고 2번째 구매한했으면 2로 체크..! 하고싶다면 1이었던 칼럼을 가져와서 +1을 해주고 insert해주면되는데,

간단하게 selectKey로 해결할 수 있다.

 

	<selectKey keyProperty="apprId" resultType="int" order="BEFORE">
		        SELECT 		COUNT(칼럼명) + 1 
		        FROM 		테이블이름
		        WHERE 		USER_ID = #{userId}
		   	</selectKey>

 

insert 구문에 해당 코드를 넣어준다.

 

나는 +1이니까 resultType은 int 고

insert를 하기 전에 저게 먼제 실행되어야하니까 BEFORE이고..

ketProperty는 저 selectKey가 담기는 변수 값 이라고 생각하면 쉽다.

apprId라는 이름으로 0이든 1이든 2이든 담긴다

그럼 저 변수로 밑에 쿼리문제 넣어주면된다.

728x90

'Database > MySQL' 카테고리의 다른 글

UPDATE + INSERT / ON DUPLICATE KEY UPDATE  (0) 2023.12.08
[MySQL] AUTO_INCREMENT 값 초기화 쿼리  (0) 2023.05.09
조인이란? 유니온과 조인의 차이점  (0) 2022.11.12
JOIN2  (0) 2022.10.12
JOIN  (0) 2022.10.12

댓글