package modelo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestaInsercaoComParametro {
public static void main(String[] args) throws SQLException {
// criando a conexao
ConnectionFactory factory = new ConnectionFactory();
try (Connection connection = factory.recuperarConexao()) {
connection.setAutoCommit(false); // Aqui eu estou falando que eu que vou controlar o momento da minha
// transação
try (PreparedStatement stm = connection.prepareStatement(
"INSERT INTO produto (nome,descricao) VALUES (?,?)", Statement.RETURN_GENERATED_KEYS)) {
adicionarVariavel("SmatTV", "60 Polegadas ", stm);
adicionarVariavel("radio ", "radio de bateria ", stm);
connection.commit();
} catch (Exception e) {
e.printStackTrace();
System.out.println("ROLLBACK FOI EXECUTADO");
connection.rollback();
}
}
}
private static void adicionarVariavel(String nome, String descricao, PreparedStatement stm) throws SQLException {
stm.setString(1, nome);
stm.setString(2, descricao);
if (nome.equals("radio")) {
throw new RuntimeException("Não foi possivel adicionar o produto");
}
stm.execute();
try (ResultSet rst = stm.getGeneratedKeys()) {
while (rst.next()) {
Integer id = rst.getInt(1);
System.out.println("id criado foi " + id);
}
}
}
}