상황 : 하나의 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의 값중 리턴 받고 싶어하는 필드를 입력하면 된다.
Gson (0) | 2022.03.12 |
---|---|
[SpringBoot] Bean 어노테이션 (0) | 2022.03.03 |
split 첫 번째만 자르기 (0) | 2021.11.02 |
스프링 각종 파라미터 타입(링크) (0) | 2021.09.30 |
문자열안에 따옴표 인식 (0) | 2021.09.16 |