Non ho capito se ora funziona oppure no.
Ad ogni modo, ti suggerisco di gestire diversamente le PreparedStatement:

codice:
// Dichiarare gli oggetti fuori dal try/catch e inizializzarli a null
PreparedStatement ps = null;
try {
   // creare e usare le PreparedStatement
   ps = DBUtils.getPreparedStatement( ... );
   ...
   ps.executeUpdate();
} catch (Exception e) {
   // Logging degli errori
   ...
} finally {
   // Chiusura di tutti gli statement
   if (ps != null) {
      try { ps.close(); } catch (Exception e) { }
   }
}

Se hai una query di selezione, utilizzerai dei ResultSet per ottenere i dati: anche quelli andrebbero dichiarati FUORI dal blocco try/catch e chiusi nel blocco finally. Questo ti garantisce di non lasciare risorse aperte sul DB che a lungo andare sono dannose.


Ciao.