BLOG main image
분류 전체보기 (77)
프로젝트 (8)
IT소문 (9)
영화가주는인생 (5)
OpenAPI (9)
DBMS (5)
JAVA (16)
IPhone/Object-C (9)
안드로이드 (0)
WEB etc (8)
Server (1)
Michael Kors Handbags on Sale
Michael Kors Handbags on Sale
Nike Roshe Run
Nike Roshe Run
michael kors handbags outlet
michael kors handbags outlet
outlet de zapatillas nike
outlet de zapatillas nike
Cheap beats by dre uk
Cheap beats by dre uk
2,370,412 Visitors up to today!
Today 37 hit, Yesterday 133 hit
daisy rss
tistory
2011.02.20 01:50
사실 실수도 아닙니다. 가이드를 꼼꼼히 읽어봤다면 무리없이 넘어 갔겠지만,
저 처럼 2.X selectKey 를 PK로 사용하다가 , 3.x ...을 걍  받아 드렸을 때 생기는 실수인듯합니다.

iBATIS 3.0 에서는 insert 실행 후에 입력된 row의 수를 반환한다. insert로 데이터를 하나 넣으면 1라는 것이죠.
기존 2.x 버전에서는 pk 가 넘어왔었습니다.
당연히 3.0 가서도 selectKey를 사용하면 pk가 넘어오겠지라고 생각을 했지만, 아니였다.^^;;;

2.x 에서는 return 값으로 넘겨줬지만 3.0에서는 아예 인스턴스에 담아서 넘겨줍니다.

예제로 본다면
--XML 파일은
<selectKey resultType="int" keyProperty="id" order="BEFORE">  
        SELECT SEQ_NT_MEMBER.NEXT_VALUE FROM DB_ROOT 
</selectKey>

--JAVA파일

UserDTO dto = new UserDTO();
dto.setName("야호");
int row = (int)getSqlSession().insert("Member.insertMember", dto);

예전에는 row 가 pk 였지만 mybatis 는 dto.getId(); 에 직접 담아서 넘겨준다.
많이 친절해진 거 같다.ㅎ


Name
Password
Homepage
Secret

티스토리 툴바