Fra din kommentar har du prepareCall inde i din loop. En fordel ved forberedte sætninger (og callable sætninger) er, at du kan forberede den én gang, og derefter udskifte de værdier, der sendes i parametrene; der er overhead, hver gang opkaldet forberedes, så hvis du kunne bringe det uden for din løkke, kan du opleve, at køretiden falder. Du vil måske opdage, at det også hjælper at slå AutoCommit fra, da der er overhead med hver commit.
conn.setAutoCommit(false);
CallableStatement stmt = conn.prepareCall(sql);
while(true) {
stmt.setInt(1, value);
stmt.execute();
}
conn.commit();
conn.setAutoCommit(true);
(conn.setAutoCommit(true)
binder, men jeg finder det tydeligere at være eksplicit).