Pessoal,

hoje a gente vai conversar sobre dois padrões muito importantes pra quem está estudando arquitetura de software: o DAO (Data Access Object) e o Repository.

Ambos têm a mesma missão: separar o acesso a dados da lógica de negócio.

Ou seja, deixar o código mais organizado, mais limpo e mais fácil de testar.

Mas apesar de parecerem parecidos (e muita gente achar que são a mesma coisa), eles têm diferenças de intenção e contexto que vale muito a pena entender.

Vamos com calma, como sempre.


🔹 1. Entendendo o DAO (Data Access Object)

O padrão DAO é, basicamente, uma camada que encapsula o acesso aos dados.

Em vez de sair colocando comandos SQL soltos no meio do código, a gente cria uma classe responsável só por isso.

Essa classe tem métodos como:

salvarAluno(Aluno aluno)
buscarPorId(int id)
removerAluno(int id)

Ou seja: operações do tipo CRUD (Create, Read, Update, Delete).

A grande vantagem é que a regra de negócio não precisa saber como os dados estão sendo armazenados. Quem se preocupa com banco de dados, driver JDBC, SQL ou qualquer coisa assim... é o DAO.


📌 Em resumo, o DAO: