0Pricing
Go Academy · Aula

Operações CRUD

Crie, leia, atualize e exclua

Operações CRUD é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.

CRUD com GORM

O GORM transforma as quatro operações básicas, Create, Ler, Update, Delete, em chamadas de métodos em *gorm.DB. Você passa ponteiros para estruturas, e o GORM cria o SQL.

Create

Create insere um registro. Depois da execução, o GORM preenche a chave primária e as marcas de data e hora da estrutura com os valores do banco de dados.

user := User{Name: "Ada", Email: "ada@example.com"}
result := db.Create(&user)
fmt.Println(user.ID, result.RowsAffected)

Leitura com First

First busca o primeiro registro correspondente, ordenado pela chave primária. Passe um ponteiro para receber o resultado; as condições são fornecidas como argumentos adicionais.

var user User
db.First(&user, 1)               // by primary key
db.First(&user, "email = ?", "ada@example.com")

Leitura de vários registros com Find

Find carrega várias linhas em uma fatia. Sem condições, retorna todas as linhas; com Where, aplica um filtro.

var users []User
db.Where("age > ?", 18).Find(&users)

Update

Save atualiza todos os campos de um registro. Update e Updates alteram colunas específicas, evitando substituir campos que você não pretendia modificar.

db.Model(&user).Update("name", "Ada L.")
db.Model(&user).Updates(User{Name: "Ada", Age: 36})

Atenção aos valores zero

Ao atualizar usando uma estrutura, o GORM ignora os campos com valor zero, como 0, o valor falso e a string vazia. Para atualizar uma coluna com um valor zero, passe um mapa em vez de uma estrutura.

db.Model(&user).Updates(map[string]interface{}{"age": 0, "active": false})

Delete

Delete remove um registro. Se o modelo tiver um campo DeletedAt, essa será uma exclusão lógica: a marca de data e hora será definida em vez de a linha ser removida.

db.Delete(&user, 1)

Uma simulação executável de CRUD

GORM precisa de um banco de dados real, portanto este exemplo executável simula criação, leitura, atualização e exclusão em uma fatia mantida na memória para mostrar o ciclo de vida.

package main

import "fmt"

type User struct {
    ID   int
    Name string
}

func main() {
    var users []User
    next := 1
    // Create
    u := User{ID: next, Name: "Ada"}
    users = append(users, u)
    next++
    // Read
    fmt.Println("read:", users[0])
    // Update
    users[0].Name = "Ada L."
    fmt.Println("updated:", users[0])
    // Delete
    users = users[:0]
    fmt.Println("count after delete:", len(users))
}

Verificando erros

Cada chamada do GORM retorna um *gorm.DB cujo campo Error contém qualquer falha. Um registro ausente produz gorm.ErrRecordNotFound em First.

if err := db.First(&user, 99).Error; err == gorm.ErrRecordNotFound {
    fmt.Println("no such user")
}

Encadeamento de métodos

O GORM usa um construtor encadeável: db.Where(...).Order(...).Limit(...).Find(&users). Cada método restringe a consulta, e o método final (Find, First) a executa.

Inserção em lote

Passe uma fatia para Create para inserir várias linhas em uma única instrução. CreateInBatches divide fatias muito grandes em blocos para permanecer dentro dos limites.

db.Create(&[]User{{Name: "A"}, {Name: "B"}})

Verificação rápida

Teste seus conhecimentos sobre CRUD.

Recapitulação

Você aprendeu sobre operações CRUD:

  • Create insere e preenche a chave primária
  • First e Find leem uma ou várias linhas
  • Save, Update e Updates fazem alterações; mapas impõem valores zero
  • Delete realiza uma exclusão lógica quando DeletedAt existe
  • Verifique o campo Error; encadeie métodos para consultas complexas

Perguntas Frequentes

A aula “Operações CRUD” é grátis?

Sim — o texto completo de “Operações CRUD” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.

O que vou aprender em “Operações CRUD”?

Crie, leia, atualize e exclua Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Go Academy?

Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Operações CRUD”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Go Academy?

Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Modelos e AutoMigrate
  2. Operações CRUD
  3. Associações
  4. Hooks e escopos
← Voltar para Go Academy