Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
Há uma maneira de É possível configurar uma troca de conexão com o banco de dados em tempo de execução da forma como desejar, isso pode ser usado para definir um banco para um usuário específico, como mostrado neste tutorial. Como mostrado na figura abaixo, iremos utilizar um banco MySQL e um PostgreSQL (Figura 1).
Image Removed
a partir de uma lógica de programação qualquer. Ao fim do tutorial será possível acessar a 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 Added
Figura 1 - Lógica que será usada no Figura 1 - Bancos utilizados para o 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.
Projeto do tipo web ou mobile criado. Caso haja dúvidas de como criar esse tipo de projeto acesse o link Criar projeto;
- Possuir 2 banco bancos de dados dados vinculados ao mesmo projeto, acesse a documentação Banco de dados para mais detalhes.
Passos
Criando um novo DiagramaBanco 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 em Diagrama de dados e em seguida Novo>Diagrama de Dados>Nome do diagrama.
Image Removed
Figura 2 - Criando um segundo Diagrama de dados
Como mostrado na figura abaixo, iremos utilizar um banco MySQL e um PostgreSQL (Figura 2). Para acessar os bancos configurados basta acessar no menu do sistema Projeto > Banco de Dados (1 da figura 2), após isso, clique em editar conexão (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 Added
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 facilitar a cópia, basta clicar em editar (3 da figura 2.1).
Image Added
Figura 2.1 - Dados do banco de dados
Primeiro Diagrama de dados
Abra o Diagrama de dados padrão do projeto (app) (Localização: Diagrama de Dados/app
Tooltip | ||||
---|---|---|---|---|
| ||||
Endereço: |
) e crie Após criar o Diagrama de dados, crie nos 2 diagramas uma classe com o nome de Carros contendo o os atributos id, nome marca e marca modelo (1 da figura 23.1), em seguida, selecione um dos bancos para este diagrama (2 3 da figura 23.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 Added
Image RemovedFigura 23.1 - Criando uma classe e selecionando o banco no Diagrama de dados
Image Removed
Image Removed
Image Removed
Image Removed
Image Removed
Image RemovedApós selecionar o banco para o diagrama principal (destaque 2 da figura 3.1), gere a camada de persistência clicando no ícone em destaque 1 da figura 3.2, após isso, clique em Gerar.
Âncora | ||||
---|---|---|---|---|
|
Image Added
Figura 3.2 - Gerando camada de persistência
Para finalizar com esse Diagrama, gere um CRUD a partir da classe Carros.
Image Added
Figura 3.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 no botão "+" (destaque 1 da figura 3.4) da pasta Diagrama de dados (Endereço: diagram/
) e, na janela que abrir (destaque 2), informe o nome do novo diagrama.
Image Added
Figura 3.4 - Criando um segundo Diagrama de dados
Crie uma classe Carros idêntica ao primeiro Diagrama de dados, contendo os campos id, marca e modelo (1 da figura 3.5). Selecione o outro banco de dados para este diagrama (destaque 2 da figura 3.5). 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 Added
Figura 3.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.6), porém com a opção Permitir configuração em tempo de execução marcada (2 da figura 3.6).
Image Added
Figura 3.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.7).
Image Added
Figura 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 | ||||
---|---|---|---|---|
| ||||
Endereço: |
), gerada a partir do primeiro diagrama de dados, e ajuste o campo Configurações do Componente visual fonte de dados (1 da figura 3.8) para apontar para a classe Carros do segundo diagrama (app2.Carros) (2 da figura 3.8).
Image Added
Figura 3.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 | ||||
---|---|---|---|---|
| ||||
Endereço: |
) 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 Added
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 ícone de bloco do campo Para configurar conexão como mostrado na figura abaixo (Figura 4.1).
Image Added
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 Added
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 Added
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 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 Added
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 Added
Figura 5.2 - Logando com outro usuário do sistema
Nessa página
Índice |
---|