Grazie innanzi tutto per la risposta! Forse sbaglio a farlo, ma se faccio la prima insert e non dò il commit è come se la query non venisse mai eseguita. Infatti il problema nasce da li. Avevo già provato, ma appunto, forse sbaglio a farlo. Questo è il frammento di codice
codice:
Savepoint stato = null;
String username = request.getParameter("username");
String password = request.getParameter("password");
String passwordCheck = request.getParameter("passwordcheck");
if (!username.equals("") && !password.equals("") && !passwordCheck.equals("")) {
if (isPasswordCorretta(password, passwordCheck)) {
if (isUsernameUnico(username)) {
int id = getAccountId(username);
if (id == -1) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = DriverManager.getConnection(strConn, dbuser, dbpassword);
conn.setAutoCommit(false);
stato = conn.setSavepoint();
stmt = conn.createStatement();
String queryAccount = "INSERT INTO srt_accounts (username, password, tipo) VALUES ('"
+ codificaApici(username) + "', '"
+ md5(codificaApici(password)) + "', '"
+ codificaApici(request.getParameter("tipo")) + "')";
int rows = stmt.executeUpdate(queryAccount);
conn.commit();
if (rows > 0) {
String nome = request.getParameter("nome");
String cognome = request.getParameter("cognome");
char tipoUtente = request.getParameter("tipo").charAt(0);
switch (tipoUtente) {
case 'a': {
String email = request.getParameter("email");
if (!nome.equals("") && !cognome.equals("") && !email.equals("")) {
if (isEmailUnica("srt_amministratori", email)) {
id = getAccountId(username);
String queryUtente = "INSERT INTO srt_amministratori (idaccount, nome, cognome, email) VALUES ('"
+ id + "', '"
+ codificaApici(nome) + "', '"
+ codificaApici(cognome) + "', '"
+ codificaApici(email) + "')";
rows = stmt.executeUpdate(queryUtente);
if (rows > 0) {
conn.commit();
} else {
conn.rollback(stato);
}
} else {
// email non valida
conn.rollback(stato);
response.sendRedirect("error.jsp?id=6");
return;
}
} else {
// campi obbligatori
conn.rollback(stato);
response.sendRedirect("error.jsp?id=2");
return;
}
}
break;