2011-09-02 3 views
1

서블릿을 사용하여 CSV 파일을 업로드하고 JDBC를 사용하여 Oracle 테이블에 삽입하고 있습니다. CSV 파일에 고유 한 값만 삽입해야합니다. CSV 파일의 값이 이미 데이터베이스 테이블에 있으면 테이블에 삽입해서는 안됩니다. 따라서 CSV 파일의 고유 한 값만 삽입해야합니다.Oracle 데이터베이스에서 CSV 파일의 고유 한 값만 삽입하는 방법은 무엇입니까?

+0

이 문제는 JSP/Servlet과 아무런 관련이 없음을 알아야합니다. 'main()'메쏘드로 평범한 바닐라 자바 ​​애플리케이션에서 그렇게 할 때 똑같은 문제가 생길 것이다. 문제는 JDBC 및 데이터베이스 영역에 있습니다. – BalusC

답변

1

다음 단계를 고려

  1. 는 데이터베이스에 대해 "값"을 검색 할
  2. 코드를 CSV 파일에서 값을 읽고이 발견되지 않는 경우는 다음을 삽입합니다.
+0

도움을 주셔서 감사합니다! 이것을 시도 할 것입니다. – sailaja

0

내가 데이터를 데이터베이스에 삽입하는 방법을 추측하고 있습니다. 루프에 있고, csv에서 읽고 DB에 삽입합니다. 그렇다면 선택 위성을 사용하여 값이 존재하는지 확인하십시오. 삽입하지 않으면

+0

내 CSV 파일에 대량 값이 있습니다. 따라서 각 값을 확인하고 하나씩 삽입하는 것이 쉽지 않습니다.이 코드는 oracle에 CSV 파일을 업로드하는 내 서블릿 코드입니다 ... – sailaja

4

이러한 옵션은이 상황을 처리하기 위해 추가 DB 호출을 피하는 데 도움이됩니다.

옵션 1 : 매우 간단하고 최소 코딩이 필요하지만 전역 트랜잭션 경계가 없을 때 작동합니다.

그냥 단지

이 옵션이 그것을 잡을 다른 값을 "아무것도"루프를하지 않는다, 모든 삽입은 어떤 제약 예외의 경우, 가야 : 당신이 CSV에서 행 읽을 때마다하는에 추가 컬렉션을 추가하기 전에 객체가 이미 있는지 (예 : arrayList.contains (객체 인스턴스)) 확인하고 유사한 데이터가있는 객체가없는 경우에만 계속 추가합니다. 마지막에 일괄 삽입을 수행합니다. 참고 : 데이터가 큰 경우 대량 삽입을 위해 고정 된 데이터 집합을 찾으십시오.

+1

실제로 고유 한 제약 조건을 탁자. – BalusC

관련 문제