2012-02-24 3 views
0

Prepared Statement 작성을 위해 삽입 쿼리 문자열을 작성해야합니다. Excel 파일에 모든 열 이름이 있습니다.많은 수의 열이 준비된 문 작성하기

테이블에 250 개 이상의 열이있어 간단한 삽입 쿼리를 만드는 데 많은 시간과 노력이 필요합니다. 열을 계산하고 쿼리의 값 필드에 ?을 입력해야합니다.

다른 방법으로 이러한 쿼리를 만들 수 있습니까?

제발 제안하십시오. 당신이 일괄 준비된 명령문 또는 FROM COPY를 사용할 수 있습니다 빠른 삽입 미리

+0

당신이하는 일은 오직 한 번만하는 직업입니다! 기계적 해결 방법이나 Java 솔루션을 찾으십니까? – Santosh

+0

예. 동일한 쿼리를 작성해야하지만 10 개 이상의 테이블에 대해 약간의 수정을해야하므로 모든 작업이 가능합니다. – Abhij

답변

1

나는이 일을하는 패러다임을 제안 할 수있다. 구현하는 것이 훨씬 더 큰 이슈가 될 수 있으며, 내가 할 수있는 것에서 이것은 꽤 복잡한 일이다!

이러한 열 이름을 읽으려면 JXL API를 사용할 수 있으며, 동일한 Excel 파일에 해당 유형을 저장할 수도 있습니다 (이 기능은 명령문을 준비 할 때 유용합니다).

그래서 엑셀은 다음과 같습니다

Column 1 | Integer 
Column 2 | String 
Column 3 | Date 

하고 그렇게

JXL은 당신이 당신의 자바 프로그램으로이 모든 읽기지도에이 정보를 저장 할 수 있습니다 (java.util.HashMap에) ,이 시점에서 당신은 당신의 프로그램에있는 컬럼의 이름과 그들의 데이터 타입을 가지고있다.

이제 준비된 문을 작성하는 방법에 대해 설명합니다.

String allColumnNames =""; 
foreach element in the hashmap, allColumnNames+=getKey() + "," 

지금이 시점에서 allColumnNames는 모든 열 이름

이 있는지 확인 분야에서 준비된 문 :

String statement = "insert into table ("+ allColumnNames +") values " + <250 ? marks here>; 

준비된 문을 간다.

다음은 stuff를 삽입하기 위해 hashmap을 다시 반복하고 setString 또는 setInt를 호출하거나 hashmap의 "value"부분에 따라 무엇이든 호출 할 수 있습니다.

내가 말했듯이 길고 복잡한 프로세스이지만이 절차를 수정하여 Excel 파일에서 값을 설정 한 다음 Excel에서 직접 테이블에 값을 직접 삽입 할 수도 있습니다.