반응형
[Mybatis] insert 시 id 값 가져오기 (useGeneratedKeys, keyProperty)
mybatis 쿼리문에서
useGeneratedKeys="true" keyProperty="idx"
2가지 항목을 추가해준다.
keyProperty 는 VO 의 값을 적어주면 된다.
<insert id="testInsert" parameterType="cmap" useGeneratedKeys="true" keyProperty="idx">
INSERT INTO TBL_TEST
(
userid
, name
)
VALUES
(
#{userid}
, #{name}
)
</insert>
잘못된 예시
당연한 내용이고, 알고 있었던 내용이지만, insert 이후의 int 값은 useGeneratedKeys 옵션에 따라서가 아닌, 결과 여부이다.(0 혹은 1)
아래는 멍청하게도 내가 했던 실수이다.
int idx = testMapper.testInsert(cmap);
System.out.println("idx : " + idx)
정상적인 예시
service 단에서는 아래와 같이 호출하게 된 이후에 파라미터인 cmap 안에 idx값이 생긴다.
testMapper.testInsert(cmap);
System.out.println("idx : " + cmap.get("idx"))
반응형