JAVA
JDBC 한번에 여러개 처리 addBatch, executeBatch
짱코딩러
2022. 10. 6. 14:30
addBatch는 쿼리 실행을 하지 않고 쿼리 구문을 메모리에 올려두었다가, 실행 명령(executeBatch)이 있으면 한번에 DB쪽으로 쿼리를 날린다.
public void multiDelete(String[] qnano) {
String sql = "delete from qna where qnano=?";
int res = 0;
int[] cnt = null;
try {
conn = DBManager.getConnection();
pstmt = conn.prepareStatement(sql);
for (int i = 0; i < qnano.length; i++) {
pstmt.setString(1, qnano[i]);
pstmt.addBatch();
}
cnt = pstmt.executeBatch();
for (int i = 0; i < cnt.length; i++) {
if (cnt[i] == -2) {
res++;
}
}
if (qnano.length == res) {
conn.commit();
} else {
conn.rollback();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBManager.close(conn, pstmt);
}
}