2012-03-06 2 views
2

MySQL 서버 5.5에서 내 서버 측에 tomcat을 사용합니다.은 simpleJdbcInsert로 중복을 대체합니다.

저는 데이터베이스 연결을 위해 Spring 프레임 워크를 사용합니다.

simpleJdbcInsert를 사용하여 테이블에 행을 삽입하고 싶습니다. 중복으로 인해 삽입이 실패한 경우 중복 된 행을 교체하려고합니다.

이 simpleJdbcInsert를 수행하는 방법이 있습니까? 아니면 jdbcTemplate을 사용하고 "ON DUPLICATE"문으로 내 쿼리를 만들어야합니까?

덕분에

답변

1

이중 기본 키가있는 경우 중복이 발생합니다.

전통적인 JDBC 또는 심지어 최대 절전 모드를 사용하는 경우 새로운 기본 키 값을 삽입하기 전에 동일한 기본 키 값이 이미 존재하는지 확인해야합니다.

그러나 기본 키가 아직 설정되지 않았거나 DBMS에 의해 설정되는 경우 다른 문제가 있습니다. 당신은 그냥 업데이트해야,

  1. JDBC에 다시 새를 삽입하기 전에 쿼리하여 이전 스타일의 수동 검사를 할 필요가 있지만, 최대 절전 모드에서

  2. . 중복이 없으면 Hibernate는 새로운 것을 만들지 만, 중복이 있다면 Hibernate를 대체 할 것이다.

+0

감사합니다. 나는 전통적인 JDBC를 사용한다. 그저 행이 존재하고 대체 할 수 있다면 simplejdbcinsert가 스스로를 검사 할 수있을 것입니다. 하지만 결국 그렇게 간단하지는 않을 것입니다. k 수동으로 해드릴 것입니다. – ufk

+0

정확한 케이스는 모르지만 키가 생성되지 않으면 자동으로 처리 할 수 ​​없습니다. – simaremare

+0

2. Hibernate가 두 개의 질의를 사용하거나 INSERT ... ON DUPLICATE KEY를 사용하는지 알고 있는가? – Sergi0