|
| [Home](home) | [Escopo](escopo) | [Gerência](gerência) | [Processo](processo) | [Mockups](mockups) | [Configuração](configuração) | [Arquitetura](arquitetura) | [DataBase](database) |[Infraestrutura](infraestrutura) |
|
|
---
|
|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| |
|
|
|
\ No newline at end of file |
|
# **Introdução**
|
|
|
|
|
|
|
|
Este documento descreve como configurar e acessar o banco de dados em um projeto java spring, bem como, a modelagem do banco de dados do projeto e suas principais informações.
|
|
|
|
|
|
|
|
# Visão Geral do Banco de Dados
|
|
|
|
|
|
|
|
- **Banco de Dados:** MySQL
|
|
|
|
- **Tipo do Banco de Dados:** Relacional
|
|
|
|
- **Descrição:** Este banco de dados é utilizado para armazenar as informações relacionadas ao sistema de gerenciamento dos usuários cadastrados no projeto, como dados cadastrais das participantes, diários escritos pelas mesmas, cadastro de administradores, armazenamento dos áudios e gestão das funcionalidades de acordo com o projeto de extensão da cliente.
|
|
|
|
|
|
|
|
# Diagrama de Entidade-Relacionamento (ERD)
|
|
|
|
|
|
|
|
- Abaixo está apresentado o diagrama de banco de dados desenvolvido pelos alunos Ages II do projeto. Nele é possível identificar as tabelas e seus relacionamentos de acordo com a necessidade do projeto.
|
|
|
|
|
|
|
|
![DiagramaRelacionalBancoDeDados](uploads/a7082b08bacc1a7fee76f1828c0b99fd/DiagramaRelacionalBancoDeDados.png)
|
|
|
|
# Configuração do Projeto Spring
|
|
|
|
|
|
|
|
- **Adicionando dependências:** Dependências, quando combinadas, asseguram que a aplicação possa interagir com o banco de dados MySQL de maneira eficiente e robusta. A dependência `spring-boot-starter-data-jpa` fornece uma camada de abstração que simplifica a manipulação de dados, permitindo o uso de JPA e Hibernate para mapear objetos Java para tabelas do banco de dados e gerenciar operações de persistência de maneira automatizada. Isso não só reduz o esforço necessário para escrever código de acesso a dados, como também melhora a manutenção e a escalabilidade da aplicação. Por sua vez, a dependência `mysql-connector-java` estabelece a conexão necessária entre a aplicação e o banco de dados MySQL, garantindo que as operações de leitura e escrita sejam realizadas de forma confiável e eficiente. Juntas, essas dependências permitem que a aplicação aproveite a automação, a flexibilidade e o desempenho do Spring Data JPA para gerenciar dados de forma eficaz.
|
|
|
|
|
|
|
|
![pom.xml_Springboot](uploads/4fb2689bde9e9a81595794e6e7d1d79b/pom.xml_Springboot.png)
|
|
|
|
![pom.xml_MySQL](uploads/7e2e0f4db68f001ed7ca7bee6bc62eb2/pom.xml_MySQL.png)
|
|
|
|
|
|
|
|
- **Definindo a configuração do banco de dados:** O arquivo `application.properties` define a configuração do banco de dados no projeto Java Spring. Ele especifica a URL de conexão com o MySQL (`spring.datasource.url`), o nome de usuário (`spring.datasource.username`) e a senha (`spring.datasource.password`). A propriedade `spring.jpa.hibernate.ddl-auto` controla como o Hibernate gerencia o esquema do banco de dados, sendo configurado para atualizar o esquema automaticamente. Além disso, `spring.jpa.show-sql=true` faz com que as consultas SQL executadas sejam exibidas no console, ajudando na depuração.
|
|
|
|
-
|
|
|
|
|
|
|
|
![Application_Properties](uploads/42c1e496cfd317939d6a9c2607b0b55d/Application_Properties.png)
|
|
|
|
|
|
|
|
- **Criando Entidades:** A criação de entidades é realizada através da definição de classes Java que representam tabelas no banco de dados. Cada classe é anotada com a anotação `@Entity`, que indica ao Hibernate (ou outro provedor JPA) que a classe deve ser mapeada para uma tabela no banco de dados. As propriedades da classe correspondem às colunas da tabela, e são anotadas com `@Column` para especificar detalhes adicionais, como o nome da coluna e se ela pode ser nula. A chave primária é definida com a anotação `@Id`, e geralmente é gerada automaticamente usando a estratégia `@GeneratedValue`. Essas entidades são então usadas para criar, ler, atualizar e excluir registros no banco de dados de forma orientada a objetos, facilitando a manipulação dos dados e a manutenção do código.
|
|
|
|
|
|
|
|
- **Definindo a Interfaces de Repositório**
|
|
|
|
A classe Interfaces de Repositório em um projeto Java Spring com JPA atua como um intermediário entre a aplicação e o banco de dados, facilitando o acesso e a manipulação dos dados. Essas interfaces são definidas como extensões da interface `JpaRepository` ou `CrudRepository`, fornecidas pelo Spring Data JPA. Ao estender `JpaRepository`, a interface ganha métodos pré-definidos para operações básicas de CRUD (Create, Read, Update, Delete), como `save()`, `findById()`, `findAll()`, e `deleteById()`. Isso elimina a necessidade de implementar manualmente as operações de acesso a dados e permite que a aplicação se concentre na lógica de negócio.
|
|
|
|
|
|
|
|
# Definições Relevantes
|
|
|
|
|
|
|
|
- **Sistema Gerenciador de Banco de Dados:** Um Sistema de Gerenciamento de Banco de Dados (SGBD) é um software que permite criar, gerenciar e manipular bancos de dados de maneira eficiente. Ele serve como uma interface entre os usuários e os dados armazenados, facilitando operações como inserção, consulta, atualização e exclusão de dados.
|
|
|
|
- **Banco de Dados:** Um banco de dados é um conjunto organizado de informações que são armazenadas e acessadas eletronicamente. Pense nele como um grande arquivo digital onde você guarda dados de forma estruturada, para que possam ser facilmente encontrados e utilizados quando necessário.
|
|
|
|
- **Clientes:** Clientes de banco de dados são ferramentas que permitem aos usuários interagir com um banco de dados. Eles oferecem uma interface para executar comandos SQL, gerenciar esquemas de banco de dados, realizar consultas, e visualizar ou manipular dados armazenados. Dois exemplos comuns de clientes de banco de dados são interfaces de backend de sistemas e ferramentas como DBeaver.
|
|
|
|
|
|
|
|
# Parâmetro JDBC URL
|
|
|
|
|
|
|
|
- O parâmetro `jdbc.url` é uma configuração crucial para estabelecer a conexão entre uma aplicação e um banco de dados relacional. Ele especifica o endereço do banco de dados que a aplicação deve acessar, incluindo detalhes como o protocolo, o endereço do servidor, a porta e o nome do banco de dados. O formato básico do `jdbc.url` é:
|
|
|
|
|
|
|
|
![Modelo_jdbc_url](uploads/a8d57650a30d9a680cb8c657679a9630/Modelo_jdbc_url.png)
|
|
|
|
|
|
|
|
- Em nosso projeto, o JDBC URL é:
|
|
|
|
|
|
|
|
![jdbc.url](uploads/58c4e4568445d41a3ae71fb401ac9b67/jdbc.url.png)
|
|
|
|
|
|
|
|
|
|
|
|
- A seguir temos as definições de cada parte que compõe a URL.
|
|
|
|
- **Protocolo (`jdbc:`)**:
|
|
|
|
- Indica que o Java Database Connectivity (JDBC) está sendo usado para a conexão.
|
|
|
|
- **Tipo de Banco de Dados (`[database_type]`)**:
|
|
|
|
- Define o tipo de banco de dados. Por exemplo, para MySQL é `mysql`, para PostgreSQL é `postgresql`, etc.
|
|
|
|
- **Endereço do Servidor (`[host]`)**:
|
|
|
|
- O endereço IP ou o nome do host onde o servidor de banco de dados está localizado. Para um banco de dados local, pode ser `localhost`.
|
|
|
|
- **Porta (`[port]`)**:
|
|
|
|
- O número da porta na qual o banco de dados está ouvindo as conexões. A porta padrão para MySQL, por exemplo, é `3306`.
|
|
|
|
- **Nome do Banco de Dados (`[database_name]`)**:
|
|
|
|
- O nome específico do banco de dados ao qual você deseja se conectar.
|
|
|
|
|
|
|
|
# Como logar no banco de dados
|
|
|
|
|
|
|
|
### **Usando MySQL Workbench**
|
|
|
|
|
|
|
|
1. **Abrir MySQL Workbench**: Inicie o MySQL Workbench no seu computador.
|
|
|
|
2. **Criar uma Nova Conexão**:
|
|
|
|
- Clique em `+` ao lado de "MySQL Connections" para criar uma nova conexão.
|
|
|
|
- Na tela de configuração, preencha as informações:
|
|
|
|
- **Connection Name**: Nome da conexão (pode ser qualquer nome).
|
|
|
|
- **Hostname**: O endereço do servidor MySQL, geralmente `localhost` para uma instalação local.
|
|
|
|
- **Port**: A porta do MySQL, que geralmente é `3306`.
|
|
|
|
- **Username**: O nome de usuário do MySQL (por exemplo, `root`).
|
|
|
|
- **Password**: A senha para o usuário fornecido.
|
|
|
|
- Clique em `Test Connection` para verificar se as configurações estão corretas.
|
|
|
|
- Clique em `OK` para salvar a conexão.
|
|
|
|
3. **Conectar-se ao Banco de Dados**:
|
|
|
|
- Clique duas vezes na nova conexão que você criou para se conectar ao banco de dados.
|
|
|
|
|
|
|
|
# Considerações Adicionais
|
|
|
|
|
|
|
|
- **Senhas e Dados Sensíveis:** Use variáveis de ambiente para armazenar senhas e dados sensíveis. |
|
|
|
\ No newline at end of file |