Pular para conteúdo

Aula 12 - Banco de Dados (GORM) 💾

Persistência de Dados Profissional em Go


Agenda de Hoje 📅

  1. SQL Puro vs ORM
  2. Introdução ao GORM
  3. Models e Auto-Migrations
  4. Operações de CRUD
  5. Relacionamentos (Has One, Has Many)
  6. 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 TABLE manual!
db.AutoMigrate(&Produto{})
  • O GORM sincroniza seu código com o banco.

4. O Ciclo do CRUD 📝

  • Create: db.Create(&p).
  • Read: db.First(&p, 1) ou db.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.Model padroniza 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."