나는 MySQL 데이터베이스를 쿼리하는 데 사용되는 매개 변수를 얻기 위해 HashMap
을 반복해야하는 Java 프로그램이 있습니다.동일한 선택 쿼리를 여러 매개 변수로 여러 번 실행 : MySQL
Iterator<Entry<String, Double>>it = ws.entrySet().iterator();
Connection con = null;
while(it.hasNext())
{
Entry<String, Double>pairs = it.next();
PreparedStatement ps = con.prepareStatement("select doc_freq from lookup where word=?");
ps.setString(1, pairs.getKey());
ResultSet rs = ps.executeQuery();
}
반복 (약 500 배) 루프의 모든 반복에 대한 데이터베이스에 액세스하는 과정이 내 응용 프로그램을 늦추고 다음과 같이 코드입니다. 한 번에 데이터베이스에 액세스 할 수 있도록 이러한 모든 매개 변수를 보낼 수있는 방법이 있습니까?
당신은 임시 테이블을 만들 수를하고'pairs.getKey()가'그 안에 값이 다음 사용 저장 'JOIN' 문은 테이블과 임시 테이블을 사용하여 데이터를 검색합니다. 물론 임시 테이블을 사용할 때 임시 테이블을 삭제하는 것을 잊지 마십시오 (RDBMS가 처리하지 못하는 경우). –
쿼리가 느려 집니까? 프로세싱 루프가 대부분의 시간을 소비하는 곳은 어디입니까? – dcernahoschi
읽어보기 : [JDBC의 선택 문 일괄 처리] (http://www.javaranch.com/journal/200510/Journal200510.jsp#a2) – informatik01