이상하게 제 환경에서는 이걸 정상적으로 반환해주질 않고 있네요. insert나 delete, update 구문을 myBatis
를 이용해 실행하면 결과에 상관없이 -2147482646 이런 숫자 값을 리턴하고 있습니다.
혹시나 싶어서 소스를 다운받아 selectOne()이란 메서드가 뭘 리턴하는지 역추행해봤는데요.
public int update(Statement statement) throws SQLException {
PreparedStatement ps = (PreparedStatement) statement;
ps.execute();
int rows = ps.getUpdateCount();
Object parameterObject = boundSql.getParameterObject();
KeyGenerator keyGenerator = mappedStatement.getKeyGenerator();
keyGenerator.processAfter(executor, mappedStatement, ps,
parameterObject);
return rows;
}
최종적으로 위와 같은 메서드를 실행시키는 것으로 확인되어 PreparedStatement 클래스의 getUpdateCount()
란 메서드를 리턴시키는 것으로 확인하였습니다.
그래서 질문드리는데 혹시 MySQL의 InnoDB에서 해당 메서드를 지원하지 않는 다거나 하는 제약이 있는지 여쭙고 싶습니다.
제가 스프링 이전에 getUpdateCount라는 메서드를 써본 적이 없어서 이 메서드의 특성을 잘 모르겠네요 :(
어떤 상황에서 -2147482646 란 값을 리턴하는지두요. 혹시 답을 알고 계시다면 꼭 좀 부탁드립니다. 좋은 하루되세
요 :D
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
혹시 이 설정을 말씀하시는 건가요? 현재 이 옵션을 계속 유지하고 있는데도 안되네요.
이 옵션을 SIMPLE로 바꾸니 제대로 동작하는 것을 확인하였습니다.
정말 답변 감사드립니다.
이런 엄청 세밀한 정보를 어떻게 알고 계시는지 정말 신기하네요.
여하튼 KSUG가 최곱니다..