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

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.

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!

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.

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.

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

[code] 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();
	}

[/code]

Oi,

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

Tchauzin!

[quote=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.
[/quote]

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!

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