1
resposta

Não está retornando rollback

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

1 resposta

Olá, Juliana. Tudo bom? Para funcionar, vc deve descomentar este trecho de código

if(nome.equals("Radio")) { throw new RuntimeException("Não foi possível adicionar o produto"); }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software