Database/MySQL

mapper 에서 selectKey 사용하기

java나유 2023. 3. 7. 14:51

쿼리를 작성하다보면, 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