Olá, pessoal, podem me auxiliar? Meu código está como no da aula, porém no minuto 6:59 no qual ele deve retornar um rollback ele não retorna, ele cria o produto normalmente, pode me ajudar?
import java.sql.*;
public class TestaInsercaoComParametro {
public static void main (String [] args) throws SQLException {
ConnectionFactory factory = new ConnectionFactory();
Connection connection = factory.recuperarConexao();
connection.setAutoCommit(false);
try {
PreparedStatement stm =
connection.prepareStatement("INSERT INTO PRODUTO (nome, descricacao) VALUES (? , ?)", Statement.RETURN_GENERATED_KEYS);
adicionarVariavel("SmartTV", "45 polegadas", stm);
adicionarVariavel("Radio", "Radio de bateria", stm);
connection.commit();
stm.close();
connection.close();
} catch(Exception e) {
e.printStackTrace();
System.out.println("ROLLBACK EXECUTADO");
connection.rollback();
}
}
private static void adicionarVariavel(String nome, String descricacao, PreparedStatement stm) throws SQLException {
stm.setString(1, nome);
stm.setString(2, descricacao);
/*if(nome.equals("Radio")) {
throw new RuntimeException("Não foi possível adicionar o produto");
}*/
stm.execute();
ResultSet rst = stm.getGeneratedKeys();
while (rst.next()) {
Integer id = rst.getInt(1);
System.out.println("O id criado foi: " + id);
}
rst.close();
}
}
resultado:
"C:\Program Files\AdoptOpenJDK\jdk-11.0.9.101-hotspot\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3\lib\idea_rt.jar=60142:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\Jubs\Desktop\dev\loja-virtual-repository\out\production\loja-virtual-repository;C:\Users\Jubs\Downloads\mysql-connector-java-8.0.22 (1)\mysql-connector-java-8.0.22\mysql-connector-java-8.0.22.jar" TestaInsercaoComParametro O id criado foi: 25 O id criado foi: 26
Process finished with exit code 0