My Space

반응형

 

상황 : 하나의 service딴에서 데이터 INSERT를 하고, INSERT된 키의 값을 가져와 처리해야하는 로직이 있었다.

ex) A테이블에 데이터 INSERT 후, 바로 이어서 A테이블의 키값을 외래키로 B테이블에 INSERT

 

Mybatis의 selectKey로 해결 가능.

 

사용 코드

<insert id="insertQuery" parameterType="com.model.Param">
INSERT INTO A (TITLE, CONTENT)
VALUES (#{title}, #{content})
    <selectKey resultType="Integer" keyProperty="id" order="AFTER">
		SELECT LAST_INSERT_ID()
	</selectKey>
)
</insert>

// 위에서 받은 값을 사용하고 싶으면 해당쿼리를 사용하고 아래와 같이 받아올 수 있다.
Param.getId();

 

설명

SELECT LAST_INSERT_ID()은 mysql에서 사용가능.

- 방금입력한 테이블의 auto_increment로 증가된 컬럼값을 가져오는 쿼리

keyProperty 값은 insert에 사용되는 parameterType의 값중 리턴 받고 싶어하는 필드를 입력하면 된다.

 

 

 

'Development > JAVA' 카테고리의 다른 글

Gson  (0) 2022.03.12
[SpringBoot] Bean 어노테이션  (0) 2022.03.03
split 첫 번째만 자르기  (0) 2021.11.02
스프링 각종 파라미터 타입(링크)  (0) 2021.09.30
문자열안에 따옴표 인식  (0) 2021.09.16

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading