2
나는 i
변수를 사용하여 (100)에 의해 작업을 일괄 분할이 내 첫 배치 JDBC 코드입니다 :jdbc 배치 삽입, 작업 분할 방법
PreparedStatement oraclePs = oracleConn.prepareStatement("insert ...");
ResultSet sybaseRs = sybasePs.executeQuery();
int i = 1;
final int step = 100;
while (sybaseRs.next()) {
oraclePs.setDate(1, sybaseRs.getDate("..."));
...
oraclePs.addBatch();
if (i++ % step == 0)
oraclePs.executeBatch();
}
oraclePs.executeBatch();
oraclePs.close();
oracleConn.commit();
잘 기술인가요?
i
이 100 경계에서 끝나면 oraclePs.executeBatch();
이 맞지 않습니다.
step
을 어떻게 선택합니까? 이외에도
}
if(i % step != 0)
oraclePs.executeBatch();
oraclePs.close();
oracleConn.commit();
: Oracle의 경우 나는 "오라클 SQL 개발자"이 단계와 IDE 가져 오기 CSV ...
나는 DB를 가지고 꽤 오래 일한 적이 없다. 준비된 성명서를 닫은 후 연결을하는 것이 관례인가? – Ordous
연결 커밋과 준비된 명령문은 독립적이므로 먼저 수행 한 작업은 중요하지 않습니다. PreparedStatement에 연결된 모든 ResultSet은 명령문이 닫히면 사용할 수 없게됩니다. 이 메소드를 여러 x 호출하는 경우 준비된 명령.을 3 시하 고 명령문을 준비하면 즉시 닫지 않는 것이 좋습니다. – StuPointerException