Não consigo cadastrar no baco de dado

11 respostas Resolvido
W

Alguém pode me ajudar,

Meu programa não da erro nenhum, mas ele não salva no banco de dados.
Fiz algumas testes e conseguir ver que quando ele chega nessa linha PreparedStatement ps = conn.prepareStatement(stringSql); o programa para e pula para o a opção de catch.

11 Respostas

guivirtuoso

E qual a exceção que está dando?

Debugue seu código e pegue o conteúdo da variavel que está dentro do catch.

Ex:

try{
} catch(Exception e) {
}

Nos diga o que esta vindo em “e”.

Abs

SuperMock

Poste seu código aqui para uma melhor ajuda, mas pode considerar que seja um erro na sua String SQL, já testou no banco de dados se não está dando erro?

W
try{

cc.conectaBanco();

String nomeProduto = jTextFieldNomeProduto.getText();

try{

qtdProduto = Integer.parseInt(jTextFieldQuantidadeProduto.getText());

referencia = Integer.parseInt(jTextFieldReferencia.getText());

valorProduto = Double.parseDouble(jTextFieldValorProduto.getText());

System.out.println(1.1);

}catch(NumberFormatException  nfe){

JOptionPane.showMessageDialog(this, Algum valor numerico não foi digitado corretamente);

}
String stringSql = ("insert into produto (referencia,nome,quatidade_produto,preco) values (?,?,?,?)");
    PreparedStatement ps = conn.prepareStatement(stringSql);
    ps.setInt(1, referencia);
    ps.setString(2, nomeProduto);
    ps.setInt(3, qtdProduto);
    ps.setDouble(4, valorProduto);
    ps.executeUpdate();

    JOptionPane.showMessageDialog(this, "Cadastrado");
    
    

        
    }catch(SQLException  e ){
        JOptionPane.showMessageDialog(this, "Não Cadastrado");
    }
    
    
}
W
try{

cc.conectaBanco();

String nomeProduto = jTextFieldNomeProduto.getText();

try{

qtdProduto = Integer.parseInt(jTextFieldQuantidadeProduto.getText());

referencia = Integer.parseInt(jTextFieldReferencia.getText());

valorProduto = Double.parseDouble(jTextFieldValorProduto.getText());

System.out.println(1.1);

}catch(NumberFormatException  nfe){

JOptionPane.showMessageDialog(this, Algum valor numerico não foi digitado corretamente);

}
String stringSql = ("insert into produto (referencia,nome,quatidade_produto,preco) values (?,?,?,?)");
    PreparedStatement ps = conn.prepareStatement(stringSql);
    ps.setInt(1, referencia);
    ps.setString(2, nomeProduto);
    ps.setInt(3, qtdProduto);
    ps.setDouble(4, valorProduto);
    ps.executeUpdate();

    JOptionPane.showMessageDialog(this, "Cadastrado");
    
    

        
    }catch(SQLException  e ){
        JOptionPane.showMessageDialog(this, "Não Cadastrado");
    }
    
    
}
guivirtuoso

Faltou postar a exceção que ta rolando quando tu executa tudo isso…

SuperMock

Poste também o resultado deste erro como o guivirtuoso falou usando:

try {

//Seu código

} catch(SQLException e) {

System.out.println(e.getMessage()); //Mostra pra gente o que retorna aqui!

}

Ah mais uma coisa em um INSERT use ps.execute();

W

O resultado do debug foi.
e = nullPointerException = #2450
quando eu coloque
System.out.println(e.gerMessage());
me retornou null

SuperMock
Solucao aceita

Isto quer dizer que o objeto não existe, no caso o

PrepareStatement ps;

Você tem certeza que o objeto “cc” está conectando ao banco, e que o há alguma coisa no objeto “conn”?

Tente verificar o estado do “coon”.

Outra coisa, você não esqueceu de colocar no BuildPath o MySQL Connector?

W

W

O resultado do debug foi.
e = nullPointerException = #2450
quando eu coloque
System.out.println(e.gerMessage());
me retornou null

W

Pessoal,

Consegui resolver. Minha conexão com banco estava sendo estanciada de uma outra classe,
mas não sei porque não estava dando certo a conexão.
Peguei o código completo da conexão e coloquei na própria classe.

Agradeço a todos

Criado 11 de janeiro de 2016
Ultima resposta 11 de jan. de 2016
Respostas 11
Participantes 3