Aula 22 Flashcards
Explique a linha spring.datasource.dbcp2.driver-class-name
- spring.datasource = datasource está relacionado com a fonte dos dados (não com a database em si, mas na conexão com ela).
- dbcp2 = Database Connection Pool 2 do Apache, serve como uma ‘piscina’ de conexões já abertas, para que não tenho que ficar abrindo e fechando novas conexões ao banco de dados, o que iria custar mais caro para a empresa.
- driver-class-name = aponta para a classe do driver de conexão com o banco de dados.
Como funciona um driver de conexão com um banco de dados?
Atua como uma ponte entre a aplicação e o banco de dados. É a implementação de uma API de comunicação com o banco de dados que apresenta um contrato ao sistema e fala como que essa comunicação com o banco de dados deve acontecer.
O que é uma API?
É um conjunto de regras que permite que diferentes programas se comuniquem.
O que é o termo overhead?
Overhead é uma diminuição na eficiencia devido a cargas de trabalho extras. Ou seja, um custo adicional de recursos.
Por que o HirakiCP é uma alternativa melhor ao DBCP2?
Por conta de ser mais leve, mais eficiente e gerar menos overhead. Além de ser altamente concorrente, o que possibilita a recomposição e alocação rápida de conexões.
O que é programação assíncrona?
É quando um processo não interrompe o fluxo principal do programa. O coração da programação assíncrona é o Event Loop.
Passo 1 - Requisição assíncrona.
Passo 2 - O Event Loop gerencia a operação sem bloquear o restante do código.
Passo 3 - Quando a ação é completada, o Event Loop chama um Callback que foi registrado pra lidar com o resultado.
Passo 4 - O código dentro do Callback é executado.
Como é a formatação de uma url de conexão com o banco de dados?
api:database://domain:db_port/db_name
Usando a API jdbc com mysql e tentando se conectar com uma database com o nome ‘minha_database’ :
jdbc:mysql://localhost:3306/minha_database
Quando o banco de dados trabalha com dados de data e hora, geralmente são usados quais Query Params na URL de conexão com o banco de dados?
?useTimezone=true&serverTimezone=UTC
useTimezone=true : Diz à aplicação para usar o Timezone da máquina que está a executando. (Por mais que já venha em true, é bom deixar assim como uma forma de documentação implícita.)
serverTimezone=UTC : Define o fuso horário padrão universal.
O que precisa ser configurado em primeira instância na conexão com o banco de dados?
Driver da database, URL, Username e Password.
Explique a linha
spring.jpa.hibernate.ddl-auto
- spring.datasource = datasource está relacionado com a fonte dos dados (não com a database em si, mas na conexão com ela).
- jpa = framework de alto nível que funciona como ORM, abstraindo a complexidade do SQL. (@entity, @table, etc)
- hibernate = implementação da especificação JPA. Ele facilita a comunicação de objetos java com tabelas em bancos de dados.
- ddl-auto = define o comportamento do hibernate com relação à criação e atualização do esquema do banco de dados. Pode ser none, update, create, create-drop e validate.
Explique cada um dos valores para ddl-auto.
None : Nenhuma alteração é feita no esquema do banco de dados.
Update : Altera a tabela conforme o necessário, sem excluir ou perder dados.
Create : O Hibernate cria o esquema configurado pelo desenvolvdor sempre que a aplicação é iniciada.
Create-Drop : Muito parecido com o ‘Create’, a única diferença é que as tabelas são dropadas no final da execução da aplicação.
Validate : Verifica se o banco de dados está de acordo com as entidades definidas no código, caso não esteja, a aplicação lança um erro.