본문 바로가기

카테고리 없음

[mybatis] insert 후 column 값을 반환

useGeneratedKeys="true"keyProperty="필드명"keyColumn="컬럼명"

을 사용해서 insert한 객체의 값을 받을 수 있다. 보통 id값을 많이 받음. mysql처럼 Auto Increment가 적용되는 DB는 이렇게 사용하면 되는데 오라클 처럼 sequence를 지원하는 경우 다른 속성을 써야함. 자세한 것은 아래 링크에서 확인가능.

https://moonsiri.tistory.com/18

 

myBatis에서 반환값을 사용할 keyProperty 사용하고는 하는데 함수의 반환값을 반환하는 것이 아니라 insert 객체에 값을 담아준다.

<insertid="insert"parameterType="PostDto" useGeneratedKeys="true"keyProperty="idx"keyColumn="idx">

INSERT INTO post(writer,nickName,title,contents,initDate,revisedDate)VALUES(#{writer},#{nickName},#{title},#{contents},#{initDate},#{revisedDate})

</insert>

 

아래 코드에서 보듯이 insert()의 호출결과에 idx를 담아주는 것이 아니라 객체의 idx필드에 값을 넣어준다.