3
respostas

Como faço para atualizar?

Bom consegui inserir e remover. Como faço para atualizar utilizando o através do método PreparedStatment?

3 respostas

Dayson, você terá que primeiramente buscar pelo objeto que você quer atualizar. Beleza, se ele não existe você irá inserir ele no banco. Cenário trivial.

Agora, se sua consulta te retornar dado você sabe que será necessário atualizar esse dado no banco. No caso como você já fez uma consulta no banco para verificar a existência ou não deste dado, através de um select, você poderá montar o objeto, tendo em mãos o ID deste cara...

Com isso basta montar uma query de update da table em questão e mandando alterar aquela linha que tem o ID que você recuperou anteriormente.

De maneira geral é isso, basta desenvolver a ideia. Você utilizará os mesmos comando que viu na aula, execute e etc... Basta desenvolver essa lógica de ver se é necessário atualizar ou não e no caso de sim quem será atualizado.

Ok, estou na minha Classe DAO e queria pegar um valor de uma coluna e dar um update em todas linhas daquela coluna. Só consegui fazer até aqui.

public void atualizar(Produto produto) throws SQLException { String sql = "select * from produto where nome=?"; try(PreparedStatement smt = connection.prepareStatement(sql)){ smt.execute();

String update = "update produto set nome= ? where nome=?";

smt.setString(1, produto.getNome());

int linhaAtualizada = smt.executeUpdate(update); System.out.println("total de " +linhaAtualizada + "linhas atualizadas"); } }

Ok, repare que você deu set da PS somente no index 1, ou seja, no novo valor que é para setar o nome. Agora, você precisa setar qual a condição para ser atualizado, ou seja, o segundo index da PS.

Um exemplo:

smt.setString(1, produto.getNomeNovo());
smt.setString(1, produto.getNomeAntigo());

Reparei uma coisa, você quer dar update em todas as linhas naquela coluna nome? Se sim, você não precisa colocar uma clausula where na sua sql.