Oba Galera to tentando gravar os dados no banco porém se eu fecho o ResultSet no metodo ele me retorna uma Exception.
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "org.mariadb.jdbc.client.socket.PacketReader.readPacket(boolean, boolean)" because "this.reader" is null
at org.mariadb.jdbc.client.result.Result.skipRemaining(Result.java:146)
at org.mariadb.jdbc.client.result.Result.close(Result.java:208)
at br.com.viagem.certa.InserindoDadosComParametro.extracted(InserindoDadosComParametro.java:62)
at br.com.viagem.certa.InserindoDadosComParametro.main(InserindoDadosComParametro.java:26)
Porem se eu não fecho a conexão ele funciona normalmente e cria os dados no banco.
public class InserindoDadosComParametro {
public static void main(String[] args) throws SQLException {
ConnectionFactory conexao = new ConnectionFactory();
try(Connection connection = conexao.recuperarConexao()){
connection.setAutoCommit(false);
try(PreparedStatement stm = connection.prepareStatement("INSERT INTO nacionais(cidade, descricao, valor) values (?,?,?)", Statement.RETURN_GENERATED_KEYS)) {
//(1)--------------------------------------------------------------------------------------//
String cidade = "Camaçari";
String descricao = "Arembepe, no litoral de Camaçari, possui piscinas naturais de águas mornas e tranquilas. E faixas de areia são protegidas pelo Projeto Tamar, para preservação das tartarugas marinhas.";
double valor = 2500.00;
extracted(cidade, descricao, valor, stm);
//(2)--------------------------------------------------------------------------------------//
cidade = "Holambra";
descricao = "Holambra é muito conhecida por sua diversidade de flores e da forte influência da colonização holandesa na arquitetura e gastronomia local.";
valor = 1000.00;
extracted(cidade, descricao, valor, stm);
connection.commit();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Roll Back Executado");
connection.rollback();
}
}
}
private static void extracted(String cidade, String descricao, double valor, PreparedStatement stm)
throws SQLException {
stm.setString(1, cidade);
stm.setString(2, descricao);
stm.setDouble(3, valor);
// if(cidade.equals("Holambra")) {
// throw new RuntimeException("Não foi possivel adicionar");
// }
stm.execute();
ResultSet rst = stm.getGeneratedKeys();
while(rst.next()) {
Integer id = rst.getInt(1);
System.out.println("O Id Criado foi " + id);
}
rst.close();
}
}
Segue o codigo para avaliação vou seguir o curso usando matendo a conexão aberta até ter uma solução, obrigado.