Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

É possível configurar uma troca de conexão com o banco de dados em tempo de execução a partir de uma lógica de programação qualquer. Ao fim do tutorial será possível acessar à um banco diferente dependendo do usuário que logar, se for admin, terá acesso aos dados de um banco, se for outro usuário, terá acesso aos dados de outro banco.


Image Modified

Figura 1 - Lógica que será usada no tutorial

Pré-requisitos

Antes de começar a seguir os passos do tutorial é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os requisitos principais.

  1. Projeto do tipo web ou mobile criado. Caso haja dúvidas de como criar esse tipo de projeto acesse o link Criar projeto;

  2. Possuir 2 bancos de dados vinculados ao mesmo projeto, acesse a documentação Banco de dados para mais detalhes.

Passos

Banco de dados

Como mostrado na figura abaixo, iremos utilizar um banco MySQL e um PostgreSQL (Figura 2). Para acessar os bancos configurados basta clicar no símbolo de banco de dados (1 da figura 2), após isso clique em editar (2 da figura 2) para acessar a área de edição do banco ou no botão Novo para cadastrar outro banco de dados ao projeto.


Image Modified

Figura 2 - Banco de dados


Com a janela de edição do banco aberta, clique em Avançado (1 da figura 2.1) para ter acesso à alguns dados que serão necessários para incluir no bloco de programação como URL JDBC, Classe do driver e Usuário (2 da figura 2.1), e para ficar mais fácil copiar, basta clicar em editar (3 da figura 2.1).


Image RemovedImage Added

Figura 2.1 - Dados do banco de dados

Primeiro Diagrama de dados

Abra o diagrama de dados do padrão do projeto (app) (Localização: Diagrama de Dados 

Tooltip
onlyIcontrue
appendIconinfo-circle

Endereço: diagram

) e crie uma classe com o nome de Carros contendo o id, marca e modelo (1 da figura 3.1), em seguida, selecione um dos bancos para este diagrama (3 da figura 3.1).


Dica

Para saber mais sobre como criar uma classe ou outros detalhes sobre o Diagrama de dados, acesse a documentação: Diagrama de dados.


Image Modified

Figura 3.1 - Criando uma classe e selecionando o banco no Diagrama de dados


Após selecionar o banco para o diagrama principal (destaque 2 da figura 3.1), gere a camada de persistência clicando no ícone mostrado na etapa 1 da figura 3.2, após isso, clique em Gerar (2 da figura 3.2).

Âncora
persistencia
persistencia


Image Modified

Figura 23.2 - Gerando camada de persistência


Para finalizar com esse Diagrama, gere um CRUD a partir da classe Carros.


Image RemovedImage Added

Figura 23.3 - Gerando a página CRUD da entidade

Segundo Diagrama de dados

É preciso criar um novo Diagrama de dados para vincular a ele o segundo banco de dados, para isso, clique com o botão direito do mouse na pasta Diagrama de dados (Endereço: diagram) e selecione Novo > Diagrama de Dados e na janela que abrir, informe o nome do novo diagrama.


Image Modified

Figura 3.4 - Criando um segundo Diagrama de dados


Crie uma classe Carros idêntica ao primeiro do Diagrama de dados, contendo os campos id, marca e modelo (1 da figura 3.15). Selecione o outro banco de dados para este diagrama (destaque 2 da figura 3.15). Ou seja, o primeiro diagrama de dados estará apontando para um banco de dados enquanto o segundo diagrama de dados apontará para outro banco de dados.


Image Modified

Figura 3.1 5 - Selecionando o banco de dados no diagrama e gerando a camada de persistência.


Em seguida, Gere a Camada de persistência (1 da figura 3,26), porém com a opção Permitir configuração em tempo de execução marcada (2 da figura 3,26). 


Image RemovedImage Added

Figura 3.2 6 - Geração da camada de persistência do segundo diagrama


Informações

No segundo diagrama será gerado a camada de persistência com a opção Permitir configuração em tempo de execução ativa, isso possibilitará alternar entre o diagrama principal (app), que contém as classes de regras de segurança (User, Application, Role...) e o segundo diagrama (app2), que possui apenas a classe que sofrerá a alternância.  


Finalizada a configuração dos 2 diagramas de dados e alternando o Cronapp para o Modo Avançado, é possível verificar a criação de 2 classes Carros, uma em cada Namespace do projeto (app e app2) (destaque 1 da figura 3.37).


Image RemovedImage Added

Figura 3.3 7 - Estrutura gerada a partir das configurações dos diagramas de dados

Formulário CRUD

Abra a página CRUD Carros (Localização: Formulários/Web/Autenticado 

Tooltip
onlyIcontrue
appendIconinfo-circle

Endereço: src/main/webapp/views/logged

), gerada a partir do primeiro diagrama de dados, e ajuste o campo Configurações da Fonte de dados (1 da figura 3.48) para apontar para a classe Carros do segundo diagrama (app2.Carros) (2 da figura 3.48).


Image Modified

Figura 3.4 8 - Verificando configuração da fonte de dados


Dica
Como o segundo diagrama é quem possui a opção Permitir configuração em tempo de execução habilitada, é necessário que as fontes de dados estejam vinculadas com as entidades desse diagrama.

Bloco de programação

Agora, crie um bloco de programação do tipo Servidor (Localização:  Blocos de programação/Servidor

Tooltip
onlyIcontrue
appendIconinfo-circle

Endereço: src/main/java/blockly

) e defina um parâmetro à função. Abaixo criamos o parâmetro usuarioLogado, utilize o bloco de lógica Se faça, o bloco de Operações Relacionais recebendo a variável usuarioLogado e o bloco de texto contendo o texto admin. Após isso, conclua a lógica com o bloco Configurar conexão para inserir os dados do banco. Na lógica abaixo, dependendo do usuário que logar, o sistema irá utilizar um banco ou outro, se for "admin" irá usar o MySQL, se for outro usuário, irá utilizar o banco PostgreSQL.


Dica

Os parâmetros URL JDBC e Classe do driver podem ser obtidos na janela de configuração dos atributos da conexão do banco de dados, ao clicar em Avançado na área de edição do banco (Figura 2,1). Veja mais na documentação Banco de dados no tópico Novo banco de dados e subtópico Atributos da conexão.


Image Modified

Figura 4 - Configurando bloco com lógica para conectar aos bancos

Configurando os Eventos e Ações

Depois que o bloco estiver configurado, poderá incluí-lo na janela de Eventos e Ações. Para isso, acesse no menu superior Projeto > Eventos e Ações e clique no símbolo de bloco do campo Para configurar conexão como mostrado na figura abaixo (Figura 4.1).


Image Modified

Figura 4.1 - Inserindo o bloco no evento Para configurar conexão


Após abrir a janela para selecionar o bloco, clique no símbolo "..." (1 da figura 4.2) e selecione a função que foi criada (2 da figura 4.2).


Image Modified

Figura 4.2 - Selecionando a função criada para a Ação Para configurar conexão


Depois que a função for selecionada, você deverá inserir uma expressão para a variável de parâmetro da função, clique na seta em "v" (1 da figura 4.3) e selecione username (2 da figura 4.3) clique em Selecionar e Salve o projeto.


Dica

No nosso exemplo, utilizamos a constante username para obter o usuário logado, mas caso deseje saber para que serve as demais constantes, acesse na documentação Fonte de dados o tópico Parâmetros e Constantes.


Image Modified

Figura 4.3 - Selecionando uma constante

Testando o projeto

Salve, execute o projeto e logue com o usuário admin (usuário/senha: admin/admin). Acesse a página de usuários (menu do sistema Admin > Usuários) e cadastre um novo usuário, no exemplo abaixo cadastramos o usuário joao


Image RemovedImage Added

Figura 5 - Usuários cadastrados


Em seguida, ainda com o usuário admin, acesse a página CRUD de Carros (Endereço: <domínio>/#/home/logged/carros) e cadastre um registro de carro (Figura 5.1). Como estamos logados com o usuário admin, esse registro será cadastrado na tabela do banco que está vinculado diagrama de dados principal (MySQL).


Image Modified

Figura 5.1 - Logando com o usuário Admin


Faça o logoff com o usuário admin e logue com o segundo usuário (joao). Acesse novamente a página CRUD de Carros (Endereço: <domínio>/#/home/logged/carros) e verifique que não existe mais o registro criado com o usuário admin, nesse momento estamos visualizando os dados do segundo banco de dados (PostgreSQL), vinculado ao segundo diagrama.

Adicione um registro de carro.


Image Modified

Figura 5.2 - Logando com outro usuário do sistema

Nessa página

Índice