Ele executa o SQL de update com sucesso ?
Já tentou executar um commit após a execução do update ?
L
Luis_Augusto_Santos
Qual é o banco de dados?
Aparece o JOptionPane com a mensagem “Foi”?
lucas.sampaio
Cara, primeiro executa essa query direto no SGBD.
Se acontecer o esperado, verifica o nome o programa está chegando no método que faz o update (há duas formas, com depurador ou vai colocando System.out.println("optinal messsage");).
Se possível posta o toda a parte que envolve essa query (a classe que executa o fluxo do programa, DAO e o Bean).
E se tiver dado certo ou não, responde aí.
B
blayd2015
nessa linha pôe
pstm.executeUpdate();
e depois abre o JOptionPane
G
Gabriel_Sereno1
Fiz isso e não deu certo
G
Gabriel_Sereno1
Postgresql e aparece sim
G
Gabriel_Sereno1
Como eu poderia executar esse commit no pstm e direto do SGBD funciona de boa, mas quando faço pelo java não vai
L
Luis_Augusto_Santos
Por padrão, o JDBC trabalha com auto commit, salvo se você alterou isso. Se não o fez explicitamente, vai permanecer como padrão.
Realizando o select, no java, utilizando o mesmo código do produto, retorna algum valor?
G
Gabriel_Sereno1
Na minha lista retorna todos os valores normalmente, até mesmo quando eles são criados, o problema é quando eu dou o update, ele simplesmente não acontece e quando eu listo no SGBD e no Java não acontece simplesmente nenhuma alteração
G
Gabriel_Sereno1
PreparedStatementpstm=conn.prepareStatement("UPDATE produto "+" SET cod_produto = ?,cod_fornecedor=?, produto_nome=?,"+" produto_marca=?, produto_venda=?, produto_estoque=?"+", produto_unidade=?"+" WHERE cod_produto=?;"+"commit;");
Utilizei o commit e não foi modificado nada
L
Luis_Augusto_Santos
Você já se certificou que o valor passado para
pstm.setInt(8, p.getCod_produto());
Está correto?
L
Luis_Augusto_Santos
Para utilizar o commit, você precisa colocar o begin no início da instrução.
G
Gabriel_Sereno1
Verdade, um erro bobo meu, me desculpa ter feito vcs perder tempo com isso, mas a minha classe ta autoincrementando o meu codigo do produto, eu seleciono o 3 ele fala que ta pegando o codigo do proximo. Muito obrigado Luis e me desculpa pelo erro super bobo T.T
L
Luis_Augusto_Santos
Agora que você encontrou a resposta, posso dizer que, como vi a query e me parecia ok, esta era a minha primeira opção. Como preferi não acreditar nisso, logo de cara, questionei qual seria o banco de dados.
Se fosse Oracle, eu iria reiterar o que o @Jonathan_Medeiros disse: vai de commit na fé.
Como o banco é Postgres, ele não exige commit (na verdade, como eu disse, é auto commit), a ideia inicial voltou à tona: confirmar se o código era o correto.
Jonathan_Medeiros
Pode ser realizado dessa forma: conexaoBD.commit();
Obs: No seu código de Update você está alterando o valor da sua chave PK (set cod_produto = ?), e isso não pode ocorrer!