Este repositório é dedicado ao segundo curso da formação de Java e SpringBoot oferecido pela Alura em colaboração com o programa One da Oracle. Durante o curso, adquiri conhecimentos sobre o pacote JDBC
e os fundamentos essenciais dessa linguagem de programação.
O curso foi dividido em diversos módulos, cada um com seus respectivos exercícios, atividades e um desafio durante o curso.
![](https://private-user-images.githubusercontent.com/68448029/242782701-7bf8aed1-0c01-44a8-97e1-fd084f77682a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NDk0NjksIm5iZiI6MTcyMTg0OTE2OSwicGF0aCI6Ii82ODQ0ODAyOS8yNDI3ODI3MDEtN2JmOGFlZDEtMGMwMS00NGE4LTk3ZTEtZmQwODRmNzc2ODJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5MjYwOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU5NTJhNjRhNTgxNTAzMzI2NjUyZTUyZjE0NzYzMGVjNmFjNDgwN2I4MmUyOTE5MzM1MGRlOTEyMjM0OTVmNGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.psgCLk-oNCGt2h_TSEW2l6_dy1Yc2FvR6NpWx4pyunY)
- JDBC, incluindo a necessidade de um driver JDBC, a definição de JDBC como Java Database Connectivity, e como abrir uma conexão usando o método
getConnection
da classeDriverManager
. - Simplificar a criação de conexões usando a classe
ConnectionFactory
, como executar comandos SQL com a interfacejava.sql.Statement
, e os riscos de segurança relacionados ao SQL Injection. - Evitar o SQL Injection usando a interface
PreparedStatement
e discutimos o conceito de transações no banco de dados, incluindo o uso decommit
erollback
. - Uso de pools de conexão, gerenciados pela interface
javax.sql.DataSource
, com uma menção ao C3PO como uma implementação de pool de conexão. - Padrão
Data Access Object (DAO)
e como encapsular as operaçõesJDBC
relacionadas a domínio em classesDAO
. - Discutimos a otimização de consultas usando
joins SQL
e a importância de criar nossa própria camada de persistência. - Exploramos a estrutura em camadas de uma aplicação, com foco na camada de persistência, e a importância de evitar o vazamento de detalhes de implementação.
- Enfatizamos a estrutura de camadas em uma aplicação, mencionando as camadas clássicas e o fluxo entre elas, além de destacar que o curso se concentra na camada de persistência, com uma referência a outras formações que abordarão a criação da view ou front-end para Android ou web.
Este repositório é um registro de todo o meu avanço no curso. Ao longo do curso, tive a oportunidade de aplicar esses conceitos através de exercícios e atividades práticas. Nesse repositório, você encontrará os exercícios, atividades e desafios realizados por mim durante o curso e todos eles estão organizados por módulo e podem ser encontrados em suas respectivas pastas.