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());
}
}
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.
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.
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();
}
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.