반응형

[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"))

 

반응형

+ Recent posts