Aula 12 - Banco de Dados (GORM) 💾
Persistência de Dados Profissional em Go
Agenda de Hoje 📅
- SQL Puro vs ORM
- Introdução ao GORM
- Models e Auto-Migrations
- Operações de CRUD
- Relacionamentos (Has One, Has Many)
- Mini-Projeto: API com Banco Real
1. O que é um ORM? 🗺️
- Object-Relational Mapping.
- Traduz Tabelas ↔ Structs.
- Abstrai o SQL para funções Go.
2. Definindo Modelos 🏗️
type Produto struct {
gorm.Model // ID, Created, Updated, Deleted
Nome string `gorm:"size:100;not null"`
Preco float64
}
- Tags controlam o comportamento do SQL.
3. Auto-Migrations 📈
- Não escreva
CREATE TABLEmanual!
- O GORM sincroniza seu código com o banco.
4. O Ciclo do CRUD 📝
- Create:
db.Create(&p). - Read:
db.First(&p, 1)oudb.Find(&lista). - Update:
db.Model(&p).Update("Preco", 100). - Delete:
db.Delete(&p).
5. Arquitetura DB 📊
graph LR
App[Código Go] -->|Struct| ORM[GORM]
ORM -->|SQL| Driver[SQLite Driver]
Driver -->|Disk| File[(test.db)]
6. Mini-Projeto: API Persistente 🚀
- Integrar Gin + GORM.
- Salvar dados enviados pelo Postman no SQLite.
- Garantir que dados existam após reiniciar.
Resumo da Aula ✅
- GORM traz velocidade e segurança ao lidar com SQL.
gorm.Modelpadroniza seus registros.- Migrations automáticas eliminam erros de script manuais.
Próxima Aula: Testes em Go ✅
- Garantindo que a API não quebre.
- Testes Unitários e Table-Driven.
Dúvidas? 🤔
"Quem não persiste, não existe. No banco de dados e na vida."