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. Como mostrado na figura abaixo, iremos utilizar um banco MySQL e um PostgreSQL (Figura 1), no No fim do tutorial será possível conectar-se à 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 - 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.

  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)

Image Added


Criando um novo 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 em Diagrama de dados e em seguida Novo>Diagrama de Dados>Nome do diagrama.


Figura 2 3 - Criando um segundo Diagrama de dados



Configurando Diagramas

Após criar o Diagrama de dados, crie nos 2 diagramas uma classe com o nome de Carros contendo o id, marca e modelo (1 da figura 23.1), em seguida, selecione um dos bancos para este diagrama (2 3 da figura 2.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.


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


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

Âncora
persistencia
persistencia


Figura 2.2 - Gerando camada de persistência


Abra o segundo diagrama criado e selecione o outro banco de dados para este diagrama, como mostrado na figura 23.3, em seguida, gere a Camada de persistência como foi feito no passo anterior, porém com a opção Permitir configuração em tempo de execução marcada. Após gerar a camada de persistência gere um CRUD a partir da classe criada no segundo diagrama, no nosso exemplo, a classe Carros.

Informações

No segundo diagrama será gerado a camada de persistência com a opção ativa Permitir configuração em tempo de execução, porque em tempo de execução o banco será alterado de acordo com o usuário logado.


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


Abra o CRUD criado e certifique-se que na fonte de dados (1 da figura 23.4) esteja com o parâmetro Configuração apontando para o segundo diagrama (2 dafigura 2da figura 3.4).


Figura 23.4 - Verificando configuração da fonte de dados

Bloco de programação

Agora, crie um bloco de programação do tipo Servidordefina um parâmetro à função. Abaixo criamos o parâmetro usuarioLogado, utilize o bloco de lógica Se faça e 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 logado, irá utilizar um banco ou outro, se for admin irá usar o MySQL, se for outro usuário, irá utilizar o banco PostgreSQL.

Dica

A URL JDBC junto com a Classe do driver, pode ser obtida 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, veja mais na documentação Banco de dados no tópico Novo banco de dados e subtópico Atributos da conexão.


Figura 3 - 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 como mostrado na figura abaixo (Figura 34.1).


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


Irá abrir uma janela para que seja selecionado o bloco que foi criado, com isso, clique no símbolo "..." (1 da figura 34.2) e selecione a função que foi criada (2 da figura 34.2).


Figura 34.2 - Selecionando a função criada


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 34.3) e selecione username (2 da figura 34.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 os demais parâmetros, acesse a documentação Fonte de dados e vá à descrição da primeira imagem do tópico Parâmetros e Constantes.


Figura 34.3 - Selecionando uma constante

Testando o projeto

Execute o projeto após salvá-lo, logue com o o usuário admin populando dados no crud criado para a classe carros, adicione em cada view um modelo diferente de carro.


Note que na figura abaixo, o usuário admin ao acessar o CRUD Carros, é exibido o da marca Ford, que foi populado no banco MySQL. Inseri o nome do banco atrás da marca do carro para que seja fácil visualizar a que banco o usuário foi conectado (Figura 45).


Figura 4 5 - Logando com o usuário Admin


Após logarmos com outro usuário, é exibido outra marca de carro pois foi populado no banco PostgreSQL (Figura 45.1).


Figura 45.1 - Logando com outro usuário

Índice