Olá desenvolvedores, continuando com a implementação do formulário de lançamentos, neste tutorial iremos finalizar o CRUD (Create, Read, Update e delete). O CRUD corresponde as quatro operações básicas do banco de dados, criação, consulta, atualização e destruição de dados.
Até aqui, nosso formulário apenas grava os dados, desse modo implementaremos as outras ações para termos um CRUD completo.
CARREGANDO OS DADOS
Ainda no contexto do método salvar(), após gravar os dados no banco de dados é preciso carregá-los, chamando a o método carregarLancamentos().
carregarLancamentos();
INTERFACE DE LAMÇAMENTO
Note que ainda não temos este método implementado, é o que iremos fazer agora. Os lançamentos serão carregados de acordo com o usuário logado, ou seja, só serão carregados os lançamentos do usuário logado. Para isso é preciso uma rotina que entre outras coisas precisará realizar uma consulta na base de dados.
Nesse sentido, para possibilitar a consulta a base de dados é preciso de uma Interface. Desse modo no package br.com.repository crie a Interface IDaoLancamento
public Interface IDaoLancamento{}
A interface implementará uma lista de lançamentos que consultará, por meio do código codUser os dados do usuário que estiver logado.
Será preciso também uma classe que implementará a Interface IDaoLancamento. E uma vez que criamos um “método” na Interface, é preciso criá-lo também na classe IDaoLancamentoImpl. O método deverá retornar uma lista.
Dentro do método de lista de lançamento, a lista será inicializada com o valor null. Utilizaremos o já implementado JPAUtil para obter e “startar” uma transação na base de dados, utilizando também o EntityManager.
Desse modo, atribuindo a lista, ao final, a consulta que será retornada. Assim, para obter a consulta dos lançamentos de acordo com o usuário logado, o createQuery receberá como parâmetro a Query a ser executada.
A Query buscará todos os lançamentos onde o usuário cujo id for igual ao código do usuário. Esta “chamada de ação” retornará a lista. Tendo concluído este processamento a ação será commitada e a sessão encerrada.
MANAGEDBEAN
Agora é preciso voltar ao ManagedBean de lançamento, o LamcamentoBean e instanciar a Interface de Lançamento.
private IDaoLancamento daoLancamento = new IDaoLancamentoImpl();
No método carregarLancamentos(); obteremos o código do usuário e a lista de lançamentos que irá carregar os dados na tela irá receber os lançamentos do usuário de acordo com o código passado como argumento. O método deverá ser precedido pela anotação @PosConstruct.
O método novo() apenas iniciará um novo lançamento.
E no método remove(), o lançamento que é carregado de acordo com o usuário também será removido de acordo com o usuário, a partir do id deste. Então limparemos os dados do usuário do campo e os lançamentos serão novamente carregados.
EM POUCAS PALAVRAS
Neste tutorial finalizamos as quatro operações de CRUD (Create, Read, Update e delete). Foram necessários muitos passos e processos, desse modo, reveja as aulas quantas vezes forem necessárias.