[b]
Alguem sabe algum codigo para realizar uma String sql, que realiza um delete em uma tabela do postgres?
inserendo o ID da tabela no textfield.
Método para Deletar, usando JFrame
7 Respostas
Em que pé você está? Já criou a conexão com o banco?
Sim ja criei uma conexão com o banco no pacote Uitilitarios, ja criei minhas classes, Ocorrencia, Veiculos, Cliente e Servicos.
Tudo para deletar os dados de minha ocorrencia, pois estou usando Herança.
Seria uma String SQl= “Delete * from ocorrencia where idocorrencia = ?”;
Então apenas precisaria setar o campo idocorrencia para referenciar o “?” de meu sql.
Isso, então vc faz assim:
PreparedStatement stmt = conexao.prepareStatement("DELETE ocorrencia WHERE idocorrencia = ?");
stmt.setInt(1, ocorrencia.getId());
stmt.executeUpdate();
stmt.close();
esse é meu dao onde possui o metodo
public void Excluir (DomainObject domainObject){
try{
String sql = "Delete * from ocorrencia where idocorrencia=?";
Connection conn = Conexao.getConnection();
Ocorrencia ocorrencia = (Ocorrencia) domainObject;
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1,ocorrencia.getIDOcorrencia());
//Executando a sql
pst.executeUpdate(sql);
//Fechando o tratamento da sql
pst.close();
//Fechando a conexão
JOptionPane.showMessageDialog(null,"excluido");
//return ocorrencia;
} catch (Exception e) {
//return null;
}
}
Aqui é meu JFrame
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Ocorrencia ocorrencia = new Ocorrencia();
ocorrencia.setIDOcorrencia(Integer.parseInt(tfcodigo.getText()));
IFachadaOcorrencia fachadaoco = new Fachadaocorrencia();
fachadaoco.Excluir(ocorrencia);
Porém não deleta nada
Você não deve passar o sql como parâmetro do método executeUpdate().
Outra coisa. Pare de ignorar a exception. Senão, caso dê algum erro, você nunca ficará sabendo qual é.
No lugar de
catch(Exception e)
{
}
Faça:
catch(Exception e)
{
e.printStackTrace();
throw new RuntimeException(e);
}
Finalmente, na clausula DELETE não tem * e nem FROM.
Blezinha.. o Delete funcionou...
Agora esee select não esta retornando tbm...
public void consultar(DomainObject domainObject) {
Ocorrencia ocorrencia = new Ocorrencia();
try {
Connection conn = Conexao.getConnection();
String select =
"SELECT * FROM ocorrencia where idocorrencia = ?";
//Tratando a sql a ser executada
PreparedStatement pst = conn.prepareStatement(select);
pst.setInt(1,ocorrencia.getIDOcorrencia());
ResultSet rs = pst.executeQuery(select);
ocorrencia.setDescricao(rs.getString("descricao"));
ocorrencia.setData(rs.getString("data_ocorrencia"));
ocorrencia.getServicos().setDescricaoServ("servico");
ocorrencia.getVeiculo().setPlaca("placa");
ocorrencia.getCliente().setNomecli("nomecliente");
// arraycli.add(ocorrencia);
//Fechando o tratamento da sql
pst.close();
//Fechando a conexão
conn.close();
JOptionPane.showMessageDialog(null, "pesquisa retornada");
}
catch (Exception e)
{ e.printStackTrace();
JOptionPane.showMessageDialog(null, e.getMessage());
}
Tire o parâmetro select do método executeQuery.
Outra coisa, dá uma olhada nesse tópico aqui:
http://www.guj.com.br/posts/list/50115.java
Já corrigi os seus posts anteriores. Mas é bom saber usar a tag code corretamente. 