publicvoidinserir(ContatosDTOcontatosDTO){try{Connectioncon=Conexao.getConnection();PreparedStatementstmt=con.prepareStatement("Insert into contatos"+"(nome, data, endereco) values(?,?,?)");try{stmt.setString(1,contatosDTO.getNome());stmt.setDate(2,contatosDTO.getData());stmt.setString(3,contatosDTO.getEndereco());stmt.execute();stmt.close();System.out.println("Gravado com sucesso!");returntrue;}finally{if(stmt!=null)stmt.close();if(con!=null)con.close();}}catch(SQLExceptione){thrownewRuntimeException(e);}}
Naruto
vlww a vcs dois vou estudar mais sobre isso o.O pis aida fiquei meio confuso de entender mas é isso mesmo que eu queria deu certim
vlwww
fenrir
ViniGodoy:
publicvoidinserir(ContatosDTOcontatosDTO){try{Connectioncon=Conexao.getConnection();PreparedStatementstmt=con.prepareStatement("Insert into contatos"+"(nome, data, endereco) values(?,?,?)");try{stmt.setString(1,contatosDTO.getNome());stmt.setDate(2,contatosDTO.getData());stmt.setString(3,contatosDTO.getEndereco());stmt.execute();stmt.close();System.out.println("Gravado com sucesso!");returntrue;}finally{if(stmt!=null)stmt.close();if(con!=null)con.close();}}catch(SQLExceptione){thrownewRuntimeException(e);}}
Dessa forma, se der erro na criação do PreparedStatement, a conexão com o banco continuará ativa, já que ela seria fechada apenas no try interno.
ViniGodoy
Tem razão. Tem que declarar eles como nulo, e só inicia-los no try interno (é como eu normalmente fazia, antes do Spring):
publicvoidinserir(ContatosDTOcontatosDTO){try{Connectioncon=null;PreparedStatementstmt=null;try{con=Conexao.getConnection();stmt=con.prepareStatement("Insert into contatos"+"(nome, data, endereco) values(?,?,?)");stmt.setString(1,contatosDTO.getNome());stmt.setDate(2,contatosDTO.getData());stmt.setString(3,contatosDTO.getEndereco());stmt.execute();stmt.close();System.out.println("Gravado com sucesso!");returntrue;}finally{if(stmt!=null)stmt.close();if(con!=null)con.close();}}catch(SQLExceptione){thrownewRuntimeException(e);}}