Integração com Banco de Dados

Criação das Tabelas

  • Preparação do Ambiente Antes de iniciar é fundamental garantir que o servidor de banco de dados esteja devidamente instalado.

  • Compatibilidade Esta integração é compatível com os bancos de dados MySQL, PostgreSQL e SQL Server. Para outros bancos de dados relacionais, podem ser necessárias adaptações específicas.

  • Cliente de Banco de Dados Certifique-se de ter um cliente de banco de dados instalado em seu computador, como o MySQL Workbench (comumente usado com o MySQL), o pgAdmin (para PostgreSQL), ou o DBeaver, capaz de administrar diversos bancos de dados. No entanto, você pode optar pelo sistema gerenciador de banco de dados de sua preferência.

  • Script SQL para Criação das tabelas Há um script SQL está disponível para a criação do banco de dados e das tabelas, adaptado para cada um dos bancos relacionais suportados mencionados acima. Este script se encontra no diretório do projeto src/main/resources/files/scripts

fsense-example-integration-108

  • Execução do Script Abra o script correspondente ao banco desejado em um editor de textos de sua escolha e copie o conteúdo. O conteúdo tem a estrutura semelhante ao exibido abaixo:
    CREATE DATABASE db_fsense;

use db_fsense;

CREATE TABLE tb_team (
id BIGINT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
team_parent_id BIGINT,
team_parent_name VARCHAR(255),
FOREIGN KEY (team_parent_id) REFERENCES tb_team(id)
);

CREATE INDEX idx_team_parent_id ON tb_team(team_parent_id);

CREATE TABLE tb_person (
id BIGINT PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255),
device_identifier VARCHAR(255),
team_id BIGINT,
team_name VARCHAR(255),
can_delete BOOLEAN,
root BOOLEAN,

FOREIGN KEY (team_id) REFERENCES tb_team(id)
);


CREATE TABLE tb_category (
id BIGINT PRIMARY KEY auto_increment,
application_name VARCHAR(255),
category CHAR(1),
category_name VARCHAR(255),
username VARCHAR(255)
);

...

  • Uso do Sistema Gerenciador de Banco de Dados Em seguida, abra o sistema gerenciador de banco de dados de sua preferência. Por exemplo, utilizaremos o MySQL Workbench neste exemplo.

fsense-example-integration-109

  • Inserção do Script no Editor Cole o conteúdo do script SQL no editor do Workbench.

fsense-example-integration-110

  • Execução e Verificação Selecione todo o conteúdo do script no editor do Workbench utilizando as teclas CTRL + A e, em seguida, clique no botão Executar, representado por um ícone de raio, conforme mostrado na imagem abaixo.

fsense-example-integration-111

  • Confirmação da Execução Se tudo ocorrer corretamente, a aba abaixo do editor exibirá mensagens confirmando que os comandos foram inseridos corretamente.

fsense-example-integration-112

  • Atualização do Schema Na aba Schemas, clique no botão Refresh. Isso mostrará que o esquema foi criado corretamente, como demonstrado na imagem abaixo.

fsense-example-integration-113

  • Conclusão com Êxito Parabéns! Seu banco de dados foi criado com sucesso. Na próxima seção, vamos configurar a aplicação com as credenciais do seu usuário.

fsense-example-integration-114

Credenciais do Usuário

  • Pré-Requisitos

Antes de configurar as credenciais, é crucial garantir que o banco de dados desejado esteja configurado e o esquema de dados tenha sido criado. Se houver dúvidas sobre a criação do esquema de dados, consulte o tópico Criação das Tabelas.

  • Localizando e Editando o Arquivo de Configuração

No arquivo fsense.properties da aplicação, há uma configuração predefinida para MySQL, PostgreSQL e SQL Server. Encontre a seção de configuração correspondente ao banco que você pretende usar.

    #MySQL
#string.connection=jdbc:mysql://localhost:3306/<your-database>?useSSL=true
#database.user=<your-username>
#database.password=<your-password>

#PostgreSQL
#string.connection=jdbc:postgresql://localhost:5432/<your-database>
#database.user=<your-username>
#database.password=<your-password>

#SQLServer
#string.connection=jdbc:sqlserver://localhost:1433;databaseName=<your-database>;encrypt=false;trustServerCertificate=false;
#database.user=<your-username>
#database.password=<your-password>
  • Descomentar as Configurações

Remova o caractere "#" de cada linha do banco que deseja integrar para que a aplicação consiga ler a configuração. Como no exemplo abaixo

    #MySQL
string.connection=jdbc:mysql://localhost:3306/<your-database>?useSSL=true
database.user=<your-username>
database.password=<your-password>

#PostgreSQL
#string.connection=jdbc:postgresql://localhost:5432/<your-database>
#database.user=<your-username>
#database.password=<your-password>

#SQLServer
#string.connection=jdbc:sqlserver://localhost:1433;databaseName=<your-database>;encrypt=false;trustServerCertificate=false;
#database.user=<your-username>
#database.password=<your-password>
  • Inserindo Credenciais Reais

Substitua os parâmetros <your-username> e <your-password> pelas informações reais do seu banco de dados.

    -Exemplo

database.user=db_admin
database.password=12345678
IMPORTANTE

Certifique-se de seguir estas etapas com atenção para garantir uma configuração adequada das credenciais do usuário.

String de Conexão

Agora, vamos configurar a string de conexão com o banco de dados.

  • Ativando a Configuração

Remova o caractere "#" da linha string.connection no arquivo de configuração. Substitua o parâmetro <your-database> pelo nome do esquema que foi criado usando o script nos tópicos anteriores, por exemplo, db_fsense.

#MySQL
#string.connection=jdbc:mysql://localhost:3306/<your-database>?useSSL=true
database.user=db_admin
database.password=12345678
#MySQL
string.connection=jdbc:mysql://localhost:3306/db_fsense?useSSL=true
database.user=db_admin
database.password=12345678
  • Verificação da URL e Porta
IMPORTANTE

Certifique-se de que a URL de conexão e a porta estejam corretas. Se necessário, substitua pela porta que o seu banco esteja utilizando.

  • Conclusão da Configuração

Pronto! A configuração está concluída. No próximo tópico, vamos testar a conexão com o banco de dados.

DICA

Ao remover o "#" da linha string.connection, você está ativando essa configuração, permitindo que o programa utilize a string de conexão específica para o banco de dados configurado. Certifique-se de inserir corretamente o nome do esquema e verificar a URL e a porta para garantir uma conexão bem-sucedida.

Teste de Conexão

Agora, vamos testar a conexão do aplicativo com o banco de dados.

  • Identificação dos Serviços Disponíveis

Se o aplicativo for executado sem nenhum serviço informado como parâmetro, ele exibirá no console a lista de serviços disponíveis. Há um serviço que foi implementado para fazer o teste da aplicação Java com o banco de dados chamado DATABASE_TEST_SERVICE.

    SELECTED SERVICE []
No service found for informed name:
Available services:
[LOGIN_HISTORY_SERVICE]
[WORKDAY_OVERRIDE_SERVICE]
[PERSON_SERVICE]
[ACTIVITY_SERVICE]
[WORKDAY_SERVICE]
[CATEGORY_SERVICE]
[EVENT_SERVICE]
[DATABASE_TEST_SERVICE]
[TEAM_SERVICE]
[WORKDAY_PROROGATION_SERVICE]
[HOLIDAY_SERVICE]
[AUTH_SERVICE]
  • Escolha do Serviço de Teste de Conexão com o Banco

Selecione o Serviço DATABASE_TEST_SERVICE no campo service.name.

  • Escolha do Método de Teste de Conexão

Em seguida, selecione o método DATABASE_TEST_CONNECTION no campo service.method e execute a aplicação.

    #SERVICO A SER EXECUTADO
service.name=DATABASE_TEST_SERVICE
#METODO DO SERVIÇO A SER EXECUTADO
service.method=DATABASE_TEST_CONNECTION
  • Verificação do Sucesso da Conexão

Caso tudo esteja configurado corretamente, o console exibirá uma mensagem informando que a conexão foi realizada com sucesso.

    SELECTED SERVICE [DATABASE_TEST_SERVICE]
SELECTED METHOD [DATABASE_TEST_CONNECTION]
Connection successfully
End of execution.
  • Lidando com Erros

Se algum parâmetro estiver incorreto, o console exibirá uma mensagem de erro do banco de dados. Tente revisar as configurações e execute novamente.

    SELECTED SERVICE [DATABASE_TEST_SERVICE]
SELECTED METHOD [DATABASE_TEST_CONNECTION]
Access denied for user 'admin'@'localhost' (using password: YES)
End of execution.
  • Conclusão Bem-Sucedida

Parabéns! A configuração da aplicação com o banco de dados foi realizada. Agora, a aplicação Java está pronta para interagir com o seu banco de dados. Certifique-se de que todos os passos foram seguidos corretamente para garantir uma operação eficaz.