Page tree
Skip to end of metadata
Go to start of metadata

Nesse página veremos um pouco sobre o Diagrama de dados do Cronapp e como montar o diagrama de classe, facilitando posteriormente a geração da camada de persistência e páginas.

Visão Geral

O diagrama de dados (Figura 1.1) descreve a estrutura das classes, seus atributos e relacionamentos no sistema. A partir dele é possível gerar a camada de persistência, as classes das entidades (com as instruções para gerar o banco de dados usando o JPA) e as telas de CRUD. O diagrama de dados também possui a função de engenharia reversa, onde podemos importar a modelagem de um banco externo e gerar a camada de persistência desse Diagrama.

Na Figura 1.1 vemos uma parte do Diagrama de dados com destaque para algumas áreas que usaremos nesse projeto.

Figura 1.1 - Tela Exibição Diagrama


  1. Bloquear diagrama: bloquear ou desbloquear as classes do diagrama;
  2. Zoom;
  3. Seleção do banco de dados: alterna entre os bancos de dados configurados no sistema;
  4. Relacionamentos: seleção dos relacionamentos para ligar as classes;
  5. Nova Classe: clique e arraste o Class para criar uma nova classe.


Observação

Usaremos o banco H2 (local) que já vem configurado após a criação do projeto. Porém, poderíamos utilizar um banco na nuvem criado através da plataforma Cronapp ou outro que você tenha a sua disposição.

Entidades e seus relacionamentos

As classes do diagrama correspondem às entidades do seu sistema com seus respectivos atributos. As classes do sistema interagem entre si e essa interação é chamada de relacionamento. O diagrama serve para especificar como os dados do seu esquema estarão organizados entre si. Veja as definições dos elementos do diagrama de classe na Tabela 1.

Ao criar um projeto, o Cronapp gera automaticamente um diagrama de dados base que já vem com as tabelas User e Role prontas. E caso o projeto seja Mobile, virá também a classe Device.

Elemento

Definição
ClasseAbstração de um objeto com seu conjunto de atributos.
AtributosElementos que descrevem cada classe.
Relacionamento

Modo como as classes se relacionam:

  • 1to1, a entidade de uma tabela se referencia obrigatoriamente apenas uma unidade da outra.
  • 1toN, uma das entidades da tabela A pode referenciar várias unidades da tabela B, porém, do outro lado, cada uma das várias unidades da tabela B só podem estar ligada a uma entidade da tabela A.
  • NtoM, neste tipo de relacionamento cada entidade, de ambos os lados, podem referenciar múltiplas unidades da outra. Uma tabela intermediária é gerada em relacionamentos desse tipo para permitir os vários relacionamentos.

Tabela 1 - Definição de classe, atributo e relacionamento entre classes.



Passos

Para acessar o diagrama de dados na árvore de arquivos, clique no atalho Ir para Pasta de Diagrama para exibir o diagrama app.umlcd, criado junto com o projeto, e clique duas vezes para abrir o diagrama de dados. (Figura 2.1)



Figura 2.1 - Acesso ao diagrama de dados.

Desbloquear/Bloquear Diagrama

Antes de fazer qualquer alteração no diagrama é preciso desbloqueá-lo, caso esteja bloqueado (Figura 2.2). Essa trava é uma segurança para evitar alterações acidentais.

Figura 2.2 - Desbloquear/Bloquear diagrama.

Adicionar uma Nova Classe

Para adicionar uma nova classe ao diagrama basta selecionar o ícone "Class" do lado direito da tela e arrasta-lo para a área de edição do diagrama, conforme a imagem a seguir:

Figura 2.3 - Adicionando Classe

Configurar os atributos de uma classe

Dê dois cliques na classe para abrir a janela de edição (Figura 2.4). Cada atributo possui uma série de configurações (colunas) e essas configurações são necessárias para a geração automática do banco de dados, camada de entidade, camada de persistência e CRUD. Veja na figura 2.4 as colunas que usaremos e qual a função de cada uma.

Figura 2.4 - Algumas colunas da janela de manipulação da classe

Botões

  • Novo: adiciona um novo atributo;
  • Remover: apaga os atributos que estão com a caixa de seleção da coluna "#" selecionadas;
  • Salvar: salva as alterações da classe e retorna para a janela do Diagrama de dados.


Campo e Colunas

  • Campo Class: Nome da classe;
  • Atributo: nome do atributo na classe Java;
  • Coluna no Banco: nome da coluna no banco de dados;
  • Valor padrão: ao gerar o objeto, é possível definir um valor padrão utilizando um método Java;
  • Rótulo: Nome do atributo na coluna na grade da página web;
  • Máscara: definir formatação de máscara ao atributo;
  • Tipo: tipo do atributo, exemplo: string, inteiro ou date;
  • Não Nulo: define se o campo poderá ser nulo;
  • Pesquisável: define se será possível realizar pesquisas pelo atributo no campo de busca do CRUD.
    É necessário selecionar a opção Pesquisa específica ou pesquisa geral no momento de gerar o CRUD. 


Altere o nome da classe no campo Class para Livro e clique no botão Novo para criar o atributo identificador, esse é configurado automaticamente sempre que o primeiro atributo for criado e não é necessário realizar qualquer alteração nele.

Crie mais três campos e configure como na Tabela 1, não é necessário realizar alterações nas outras colunas.


AtributoColuno no BancoValor padrãoRótuloMáscaraTipoNão NuloPesquisável
nomenome
Nome
java.lang.StringXX
autorautor
Autor
java.lang.String
X
isbnisbn
ISBN
java.lang.StringXX

Tabela 1 - Configuração dos atributos da classe Livros


Após configurar todos os atributos, clique em Salvar para retornar ao diagrama com a classe Livro já configurada.

Definindo o Relacionamento

Agora é preciso adicionar um relacionamento entre as classes. Nesse caso será um relacionamento NtoM entre a classe User e a classe Livro. Ou seja, um usuário pode reservar vários livros, assim como um livro pode ser reservado por vários usuários.

Seguindo os passos da Figura 2.5, basta clicar no botão NtoM (1) na área Tools, clicar na classe User (2) e depois clicar na classe Livro (3). O resultado será a criação de uma entidade de associativa UserLivro (4), em amarelo, entre as classes User e Livro.

Figura 2.5 - Relacionamento do diagrama

Configurando os atributos da nova Classe

Assim como fizemos com a classe Livro, abra a nova classe gerada (UserLivro) e perceba que ela já possui 3 atributos criados: o identificador da classe (chave primária), o identificador da classe User (chave estrangeira) e o identificador da classe Livro (chave estrangeira). Renomeie a classe para Reserva no campo Class e adicione mais 2 atributos (botão Novo), configurando-os como na Tabela 2.


AtributoColuna do BancoValor padrãoRótuloMáscaraTipoNão NuloPesquisável
livrofk_livro
Livro

XX
userfk_user
Usuário

XX
dataReservadata_reservaData AtualData da reserva(DATE) DD/MM/YYYYjava.util.DateXX
dataEmprestimodata_emprestimo
Data do empréstimo(DATE) DD/MM/YYYYjava.util.Date
X

Tabela 2 - Configuração dos novos atributos da classe Reserva


O Valor padrão do atributo dataReserva (Tabela 2) é um método Java que insere automaticamente a data atual toda vez que uma reserva for realizada por um usuário.

Nos campos de seleção Máscara escolha a opção DATE para os atributos dataReserva e dataEmprestimo, o sistema irá configurar para a máscara DD/MM/YYYY. Defina também o tipo java.util.Date para ambos atributos.

Dica

Iremos criar o atributo dataEmprestimo, mas não será usado nesse módulo (Reserva de livros). Esse atributo seria preenchido por outro módulo, o de empréstimo da Biblioteca, informando que o livro foi emprestado ao usuário e retirado da lista de reservas.


Ao final, o Diagrama estará como na Figura 2.7. Clique em Salvar.

Figura 2.7 - Relacionamento do diagrama


Pronto! Agora que você já sabe adicionar classes, atributos e relacionamentos ao seu diagrama é hora de fazer a mágica acontecer, com a geração das camada de persistências, entidade e os CRUDs.



  • No labels