olá Pessoal,
Neste post resolvi, apresentar um recurso bem simples que temos no hibernate usando a linguagem HQL. Tendo como exemplo aplicação construida no post anterior: Hibernate+ Annotations, iremos apenas neste post criar 2 paginas JavaServerFaces – JSF, e alterar alguns arquivos .java para implementar um sistema de busca no sistema. A ideia aqui é mostrar a facilidade que o framework possibilita, sem falar que nao precisa modificar quase nada do que ja foi construido, apenas adicionar os novos recursos.
Lets go…
Requisitos:
É necessário ter implementado os posts abaixo, sobre hibernate. Aqui vamos apenas dar continuidade aplicação ja desenvolvida.
JSF + Hibernate + MySql no Eclipse
Hibernate Annotations + JSF + MySql
Desenvolvendo
1. Primeiro passo é atualizar a class NewsDAO.java inserindo o metodo que será responsavel por fazer a busca no BD.
//realiza a pesquisa no BD
public List consultar(String letter){
session = ConexaoFactory.getInstance();
/*para entender o HQL o from abaixo será seu bean
* o l eh como se fosse o ? que temos o sql usando
*o PreparedStatement apos o where temos o campo
*de pesquisa que eh a coluna na tabela
* paraemtro da query para pesquisa do hibernate
*/
Query query = session.createQuery("from NewsLetter l where
l.nome like :letter");
List list = query.setString("letter", "%"+letter+"%").list();
return list;}
2.Agora vamos criar o metodo responsável por obter os dados no BD e armazenar esses dados em um DataModel, para facilitar a busca. Para isso temos que alterar nossa classe controladora NewsControler.java
/*metodo que armazena o retorno da pesquisa em
* DataTable,de acordo o retorno do metodo
* de pesquisa */
public DataModel getBuscar(){
NewsDAO newsdao = new NewsDAO();
/* chamando o metodo de pesquisa
* e passando o valor da campo digitado
*/
model = new ListDataModel(newsdao.consultar(keynome));
return model; }
3.Agora criaremos as paginas JSF, a primeira tem o campo de busca, a segunda traz o resultado da busca.
4.Página JSF que exibi o resultado da busca exibirpesquisa.jsp(nao esqueça de importar os tagslib para o JSF.
….
Atualizando faces-config.xml
Deixe seu arquivo faces-config.xml conforme abaixo.
newsControler
br.com.controler.NewsControler
session
news
/news.jsp
salvar
/sucesso.jsp
buscar
/buscar.jsp
pesquisar
/exibipesquisa.jsp
Testando
Agora vamos testar a nossa busca, abaixo temos a imagem do nosso BD com alguns newsletter cadastrados, assim podemos nos certificar que a busca trouxe o elemento correto.
Abraço a todos e espero que tenham gostado do post!. Até o próximo pessoal!!