2010-07-25 3 views
1

여러 레코드를 한 번에 mysql 데이터베이스에 삽입해야합니다. 내가 뭘하고 있는지는 SELECT 하나의 테이블에 준비된 문으로 내 응용 프로그램에서. 내가해야 할 일은 그 결과를 하나의 다른 임시 테이블에 삽입하는 것입니다.JDBC, 쿼리에서 얻은 여러 레코드를 다른 테이블에 삽입하십시오.

String sqlquery = "select * from table1 where arg1 = ?"; 
PreparedStatement statement; 
statement = con.prepareStatement(sql); 


ArrayList<String>termlist = index.getTermList(); 
for (int i = 0; i < termlist.size(); i++) 
{ 
    String search = termlist.get(i); 
    statement.setString(1,search); 

    ResultSet rs1 = statement.executeQuery(); // 
} 

이 세트는 클 수도 있습니다. 각 반복 후에이 ResultSet을 다른 테이블에 삽입하는 가장 빠른 방법은 무엇입니까?

방법이 있으면이 결과 집합을 일부 저장 프로 시저에 전달하는 방법은 무엇입니까?

답변

2

당신은 당신을 위해 일을하기 위해 데이터베이스를 얻을 수 :

INSERT INTO othertable 
SELECT col1, col2 FROM table1 
WHERE arg1 = ? 

당신이 이미 존재하는 데이터베이스에 데이터의 사본을 보낼 필요가 없습니다 이쪽으로.

+0

고맙습니다. 이런, 내 마음에 와서 간단하게 보이지 않는 것 같습니다. 그래서 나는 이것을 준비된 진술로 만든다 ??? 만약 내가 이런 식으로한다면, searchstring과 일치하지 않는 경우에, 어떻게해서이 searchstring을 참조 할 수 있습니까? 만약 내가 ResultSet 카운트를하지 않는다면? – Julia

0

쉼표로 구분 된 매개 변수 값 목록을 저장 프로 시저에 전달하고 IN (val1, val2, ...) 절을 사용하면 단일 쿼리를 수행 할 수 있습니다. IN 절의 길이에 대한 MySQL의 한계는 확실하지 않습니다.

여기에 split 구현이 있습니다.

관련 문제