Olá desenvolvedores, tendo aprendido a inserir (insert), buscar (select), é a hora do update, vamos atualizar os dados. No tutorial “BANCO DE DADOS: CRIANDO INSERT NO SISTEMA”, implementamos a busca de dados no sistema. Aprendemos como buscar todos os objetos de uma tabela, bem como a trazer um único objeto, ou mesmo um retorno vazio.
IMPLEMENTANDO O UPDATE
Iremos implementar, como tem sido na classe UserPosDAO um método que receberá um objeto com os dados atualizados, e também os dados para serem atualizados. E tudo o que estiver dentro do escopo do método deverá estra envolvido por um bloco try/catch.
public void atualizar(Userposjava userposjava) {
}
O método atualizar receberá uma string de atualização, que receberá a seguinte query. Vamos dar um update na tabela ‘userposjava’, onde iremos atribuir o ‘nome atualizado’, onde o id for igual ao id do objeto que estiver sendo passado. Observe que onde falamos “nome atualizado”, na verdade inserimos um parâmetro, que no caso, é um ponto de interrogação.
String sql = "update userposjava set nome = ? where id = " +userposjava.getId();
E como de costume instanciaremos o objeto PreparedStatement cuja responsabilidade dessa vez será fazer a atualização, ou seja, o update dos dados. Esta atualização será feita a partir do objeto connection, qual invoca a instrução prepareStatement que recebe o sql que instanciamos na linha de código acima.
PreparedStatement statement = connection.prepareStatement(sql);
Com o objeto statement iremos “setar” uma String para atualizar no banco de dados o nome na posição um.
statement.setString(1, userposjava.getNome());
Então iremos executar o objeto statement, também daremos um commit na conexão. O commit tem a função de gravar as alterações realizadas no banco após transações como o insert ou update. Assim, as operações posteriores ao commit passarão a enxergar tudo o que foi feito.
statement.execute();
connection.commit();
TRATAMENTO DE EXCEÇÕES
Se algum erro for apresentado, teremos que dar um rollback na conexão. Quando uma exceção é disparada a instrução rollback determina que todas as modificações de dados feitas até aquele ponto na transação atual sejam revertidas. A instrução rollback deverá também estar envolvida em um bloco try/cacth. Observe que a implementação das exceções traz um bloco try/catch aninhados.
TESTANDO A IMPLEMENTAÇÃO
Na classe de teste implementaremos um novo método para testar o update que acabamos de escrever. Instancie o DAO e crie um objeto que fará uma consulta ao banco de dados. Com a consulta podemos recuperar o id do objeto para depois passar para o método atualizar.
UserPosDAO dao = new UserPosDAO();
Userposjava objetoBanco = dao.buscar(6L);
Após a consulta atualizaremos o nome, setando o nome desejado para o objeto que tem o id 5. Chamaremos o dao, qual passaremos o objeto.
objetoBanco.setNome("Aluno Java");
dao.atualizar(objetoBanco);
EM POUCAS PALAVRAS
Então implementamos as linhas de códigos que nos permitiram atualizar a base de dados. É importante que você entenda o que cada comando faz e o porquê de ele estar sendo usado neste o naquele momento. Ao compreender os porquês da implementação será muito mais fácil absorver toda a explicação e compreender o que acabamos de fazer. Bom, eu fico por aqui, nos vemos no próximo tutorial.