« Acesse um Telescópio pelo seu computador!
Netbeans: Java Developer no EeePC? »

Publicado 18:54, 7 março , 2008 por Prof. Luis Eduardo

Sejam bem vindos, esta é a décima sétima aula de Programação Web em Java, para saber mais sobre o curso, começe em Curso de Programação Web em Java - CPWJ

Depois que vimos uma aplicação funcionando, vamos agora detalhar cada parte do processo. Nosso estudo de caso será o sistema de busca, porém iremos incrementá-lo significativamente.

Esta aula está sendo postada com atraso, devido a problemas que tive para publicar o código java no Wordpress. Depois de várias tentativas, decidi colocar os arquivos *.java e os *.xml em um diretório do servidor para que você possam baixar.

Voltemos à aula

Comecemos estudando a camada Model, ou modelo: O objetivo desta camada é definir as entidades envolvidas e as regras de negócio do programa. Em orientação a objeto, não nos preocupamos inicialmente com a interface do programa, mas sim de um modelo de representação das entidades que fazem parte do projeto. Uma abordagem pedagógica para atacar o problema é escrever de início um lista de requisitos do sistema, discutindo o que ele precisará ter:

  • Permitir o usuário digitar uma palavra chave e obter uma lista de sites que possuem relação com a palavra digitada usando o motor de busca;
  • Permitir um usuário cadastrar um ou mais sites definindo uma lista limitada de palavras chaves relacionadas com seu site;
  • Permitir um administrador do sistema corrigir, adicionar ou eliminar algum site cadastrado no sistema;

Esta será a lista de requisitos que usaremos no nosso exemplo. Para construir o modelo devemos olhar esta lista e identificar as entidades necessárias. Uma abordagem é olhar os substantivos. Estes serão entidades candidatas:

usuário, palavra chave, lista de sites, site, lista de palavras chaves, administrador, sistema de busca, cadastro Esta é uma lista preliminar, já eliminando repetições. O passo seguinte é separar o que é atributo, do que é classe, ficando somente as classes:

  • Usuário (administrador é um tipo de usuário especial)
  • Site (Lista de palavras chave é um atributo do site. Lista de Sites é uma coleção de sites)
  • Motor de busca
  • Cadastro de Sites

Depois disso iremos definir quais atributos são importantes para estas classes funcionarem de acordo com os requisitos.

  • Usuário: Id, Nome, Apelido, Senha, Email, Nível
  • Site: Id, Nome, Descrição, Url, KeyWords, Responsável (pelo cadastro)
  • Motor de Busca: Resultado da Busca, KeyWords (a serem encontrados)
  • Cadastro de Sites: Usuário responsável

Implementamos então as classes de modo que sejam manipuláveis pelo Hibernate. Este framework é responsável pela persistência, isso é, pelo armazenamento dos objetos criados na memória, para o banco de dados relacional. As regras para que as classes sejam manipuláveis pelo Hibernate são os seguintes:

  • A classe deverá ser um Java Bean definindo os atributos como dados privados e com funções públicas Getters e Setters. (veja em wikipedia as regras de uma classe Java Bean);
  • A classe deverá ter um construtor sem parâmetros para permitir o Hibernate criar objetos;
  • Deve possuir uma chave primária: isso é um campo id que armazenará um valor único que será gerado pelo Hibernate. A funcão setID() é privada, pois somente o Hibernate deverá modificar o campo chave.
  • A classe Motor de Busca e cadastro de Site não será persistido. Já que não é necessário a manutenção da busca realizada entre as chamadas.

No nosso exemplo teremos uma nova classe Usuario:

Usuario.class

Observe no código que criei uma propriedade “sites” com um HashSet. Esta propriedade irá auxiliar durante a manutenção dos sites que um usuário possui.

private Set sites = new HashSet();

E criamos o arquivo Usuario.hbm.xml na pasta sbusca. Este arquivo indica ao Hibernate o funcionamento da persistência da classe Usuário criada:

Usuario.hbm.xml

Além disso devemos incluir ao arquivo hibernate.cfg.xml:

<mapping resource=”sbusca/Usuario.hbm.xml”> </mapping>

Após todas estas codificações teremos duas entidades: Usuário e Sites. Além delas vamos definir uma classe chamada MotorBusca, que fará a lógica mais importante do sistema, isto é, a busca em si. Não é nada complicado e seria possível fazer o código diretamente nos Actions do Struts, mas vamos abusar um pouco de orientação a objeto. Olhando este exemplo simples quem sabe em um trabalho mais complexo você não se intimide. A classe deverá ter: MotorBusca:

  • Propriedade keyword: String e método executar() com e sem parâmetro;

E o código da classe ficará:

MotorBusca.java

Já definimos nesta aula um modelo quase completo para o nosso sistema. Deixei para depois somente o Cadastro de Sites, pois para implementá-lo será necessário falarmos de um CRUD, também conhecida como tela de Cadastro. Iremos ter uma aula somente sobre isso, quando voltaremos para tornar completo o modelo.

Para que você possa verificar se a busca está funcionando, criei uma classe simples de teste:

TesteBusca.java

Por hoje é só.

Dúvidas? vá para o fórum.

Tecnoclasta ©2007-2025.

Artigos Relacionados


Deixe um Comentário

Nome:
Email:
Website:
Comentários:

Buscar:

Arquivos

Índice

Arquivo

março 2008
S T Q Q S S D
« fev   abr »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

RSS Meu FriendFeed

Contato