Aula 22 Flashcards

1
Q

Explique a linha spring.datasource.dbcp2.driver-class-name

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Como funciona um driver de conexão com um banco de dados?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que é uma API?

A

É um conjunto de regras que permite que diferentes programas se comuniquem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

O que é o termo overhead?

A

Overhead é uma diminuição na eficiencia devido a cargas de trabalho extras. Ou seja, um custo adicional de recursos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Por que o HirakiCP é uma alternativa melhor ao DBCP2?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que é programação assíncrona?

A

É 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Como é a formatação de uma url de conexão com o banco de dados?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

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?

A

?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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que precisa ser configurado em primeira instância na conexão com o banco de dados?

A

Driver da database, URL, Username e Password.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Explique a linha
spring.jpa.hibernate.ddl-auto

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explique cada um dos valores para ddl-auto.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly