제 목표는 Emp 테이블에서 특정 직원의 DeptNames를 얻는 것입니다. 그러나 직원 수는 다양합니다. 아래의 접근법이 정확하고 아래의 접근법 중 어느 것이 더 나은 성능을 발휘하는지 알려주십시오. 아니면 그것에 대해 더 좋은 방법이 있습니까?성능 측면에서 어떤 접근 방식이 더 효과적입니까? (JDBC의 준비된 문에서 가변 매개 변수 마커 사용과 관련하여)
PreparedStatement pstmt = conn.prepareStatement("SELECT Dept from Emp WHERE EmpNum = ? ");
for (int i = 0, len = empNumberList.size(); i < len; i++) {
pstmt.setLong (1, empNumberList.get(i));
ResultSet rs = pstmt.executeQuery();
}
또는
StringBuffer buffer = new StringBuffer();
buffer.append("SELECT Dept from Emp WHERE EmpNum IN(?");
for (int i = 0, len = empNumberList.size(); i < len; i++) {
buffer.append(",?");
}
buffer.append(")");
PreparedStatement pstmt = con.prepareStatement(buffer.toString());
for(int i = 0; i < len; i++) {
pstmt .setLong(i, empNumberList.get(i));
}
ResultSet rs = pstmt .executeQuery();
또는이 작업을 수행하는 다른 더 좋은 방법이있다? 제발 조언. 미리 감사드립니다!
Ravilla