Aplicação não exclui nem altera dados do banco de dados

7 respostas
101574

Olá galera,

Eu sou muito novo em java, deve ter um ano mais ou menos que eu estou desenvolvendo, e as vezes eu passo um mês sem desenvolver, e quando estamos aprendendo isso não é bom.
Mas é o seguinte, eu queria uma ajuda de vocês.
Eu estou fazendo uma tela de cadastro, para um software que vou desenvolver, e estou fazendo por partes, e depois vou juntar tudo. Dividindo pra conquistar.rsrs
Só que não consigo alterar, ou excluir do banco de dados.

Minha aplicação está assim, temos duas classe:NewJFrame e Auxiliar.
Como vocês devem suspeitar, na classe NewJFrame tem a tela em si, e a classe Auxiliar recebe os dados, e grava no banco de dados.
A conexão, e o métodos para inserir no banco de dados, está tudo funcionando.

Estou postando os métodos excluir e alterar da classe Auxiliar. Se vocês precisarem de mais algum dado, ou parte da aplicação eu posto.

//Alterar cadastro
 public void alterar(){
      Statement stmt = null;

        // query que será executada
        String sql ="UPDATE OI SET NOME = '"+this.getNome()+"', ENDERECO = '"
                +this.getEndereco()+"', EMAIL = '"+this.getEmail()+"', FONE = '"
                +this.getFone()+"',ESTADO = '"+this.getEstado()+"', SEXO ='"
                +this.getSexo()+"',BIBLIOGRAFIA ='"+this.getBibliografia()+"' " +
                "WHERE NOME ='"+this.getNome()+"'";

                System.out.println(sql);
        try {
            stmt = this.conn.createStatement();
            stmt.executeUpdate(sql);
            JOptionPane.showMessageDialog(null,"Cadastro Alterado com sucesso!");
        } catch(SQLException e){
            JOptionPane.showMessageDialog(null,"Não foi possível efetuar Alterar usuário! "+
                    "Erro: "+ e.getMessage());
}
 }
 //Excluir Cadastro
 public void excluir(){
 Statement stmt = null;

        // query que será executada
        String sql = "DELETE FROM oi WHERE nome ="+ this.getNome();

        try {
            stmt = this.conn.createStatement();
            stmt.executeUpdate(sql);
            JOptionPane.showMessageDialog(null,"Cadastro Excluido com sucesso");


        } catch(SQLException e){
             JOptionPane.showMessageDialog(null,"Não foi possível efetuar a exclusão!" +
                     "Erro: " + e.getMessage());
}
 }

Desde já, agradeço a colaboração.

Abraço.

Wesley.

7 Respostas

lina

Oi,

  • Qual o erro que os métodos estão retornando ? (Informar o trace…)

Em seu update, se o método this.getFone() retornar um inteiro, não poderá ter ’ no inicio e nem no fim.

Tchauzin!

101574

Olá lina,

O problema, e que ele não dar nenhuma mensagem de erro. Eu coloquei um JOption para ele me retornar de sucesso ou a mensagem de erro. Mas ele retorna a mensagem de sucesso, e não alterar nada no banco de dados, eu já peguei a string que esta sendo passada para o mysql e rodei direto no myslq, está correta. Acho que é por isso que não esta acusando erro.
Como já foi supra citado. Creio que não há erro na conexão porque e a mesma para o método inserir, e este funcionando corretamente.

Na minha aplicação, todos os dados são retornados como string, justamente para isso. E por enquanto não são tratadas. Eu quero aprender a inserir, excluir, alterar e imprimir. Sendo assim, eu trata-os.

Muito obrigado pela atenção despendida.

Tchau!
T+

Wesley.

101574

Oie,

Descobri uma coisa, só que confesso que não sei como resolver.rsrs.

Eu coloquei um system.out.println(sql) ele me retornou do método excluir

DELETE FROM oi WHERE nome =null

Método Alterar

UPDATE OI SET NOME = 'null', ENDERECO = 'null', EMAIL = 'null', FONE = 'null',ESTADO = 'null', SEXO ='null',BIBLIOGRAFIA ='null' WHERE NOME ='null'

Na minha leiga opinião, parece que eu vou ter que primeiro escolher o registro, carregar nas minhas váriaves da minha classe Auxiliar, e depois sim, alterar ou excluir.

Agora como eu faço isso?

Senão for isso, o que tenho que fazer, sei que está faltando algo simples.

Abraço.
T+

Wesley.

C

nao esta retornando erro pq esta assim o...

try {
            stmt = this.conn.createStatement();//ele conectar com o banco
            stmt.executeUpdate(sql);// ele executa seu sql
            JOptionPane.showMessageDialog(null,"Cadastro Alterado com sucesso!");// dai ja vem a mensagem de ok 
        } catch(SQLException e){
            JOptionPane.showMessageDialog(null,"Não foi possível efetuar Alterar usuário! "+
                    "Erro: "+ e.getMessage());
}

ai na verdade eu tb sou novo nisso mas no caso axo que esse try catch nao esta certo.....
na minha opniao seria assim

try{ 
///coloca tudo aqui e quando mandar alterar se ele for diferente de 0 ele altera si nao ele da erro
          stmt = this.conn.createStatement();//ele conectar com o banco
	int valor = stmt.executeUpdate();// executa sql 
			
			if (valor != 0){
				JOptionPane.showMessageDialog(null, "Usuário Alterado com Sucesso", null,1);
			}else{
				JOptionPane.showMessageDialog(null, "Erro na Alteracao","Atenção",1);
			}
			this.desconectar();
		
		} catch (Exception e) {
			e.printStackTrace();
		}
lina

Oi,

Então… se foi tudo certo, faltou dar um Commit =)

Tchauzin!

lina

101574:
Oie,

Descobri uma coisa, só que confesso que não sei como resolver.rsrs.

Eu coloquei um system.out.println(sql) ele me retornou do método excluir

DELETE FROM oi WHERE nome =null

Método Alterar

UPDATE OI SET NOME = 'null', ENDERECO = 'null', EMAIL = 'null', FONE = 'null',ESTADO = 'null', SEXO ='null',BIBLIOGRAFIA ='null' WHERE NOME ='null'

Na minha leiga opinião, parece que eu vou ter que primeiro escolher o registro, carregar nas minhas váriaves da minha classe Auxiliar, e depois sim, alterar ou excluir.

Agora como eu faço isso?

Senão for isso, o que tenho que fazer, sei que está faltando algo simples.

Abraço.
T+

Wesley.

Oi,

Exatamente por isso achei estranho o this.getName. Seu Update e Delete estão com as variaveis nullas.

Você poderá receber por parametro o nome, telefone, cep etc… da classe NewFrame e utiliza-los no comando.

Tchauzin!

101574

Oie,

Valeu pela ajudinha Lina!

Mas como eu faço isso?

Tem como postar um pedaço do código?

Se ajudar, eu posso postar também mas alguma coisa, e só solicitar.

Estou ralando aqui. Mas ainda não consegui.

Abraço.

T+

Wesley

Criado 26 de agosto de 2009
Ultima resposta 28 de ago. de 2009
Respostas 7
Participantes 3