0Pricing
Go Academy · Leçon

Opérations CRUD

Créer, lire, modifier et supprimer

Opérations CRUD est une leçon Go Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Go Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Go Academy comprend 4 leçons au total.

Opérations CRUD avec GORM

GORM transforme les quatre opérations de base, Create, lecture, Update et suppression, en appels de méthodes sur *gorm.DB. Vous transmettez des pointeurs vers des structures et GORM construit le SQL.

Create

Create insère un enregistrement. Une fois l'opération terminée, GORM renseigne la clé primaire et les horodatages de la structure à partir de la base de données.

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

Lecture avec First

First récupère le premier enregistrement correspondant, trié par clé primaire. Transmettez un pointeur pour recevoir le résultat ; les conditions sont fournies comme arguments supplémentaires.

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

Lire plusieurs enregistrements avec Find

Find charge plusieurs lignes dans une tranche. Sans condition, il renvoie toutes les lignes ; avec Where, il les filtre.

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

Mise à jour

Save met à jour tous les champs d'un enregistrement. Update et Updates modifient des colonnes précises, ce qui évite d'écraser des champs que vous ne vouliez pas modifier.

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

Piège des valeurs zéro

Lors d'une mise à jour avec une structure, GORM ignore les champs ayant une valeur zéro (0, false, ""). Pour affecter une valeur zéro à une colonne, transmettez une carte plutôt qu'une structure.

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

Suppression

Delete supprime un enregistrement. Si le modèle possède un champ DeletedAt, il s'agit d'une suppression logique : l'horodatage est défini au lieu de supprimer la ligne.

db.Delete(&user, 1)

Une simulation CRUD exécutable

GORM nécessite une base de données réelle ; cet exemple exécutable modélise la création, la lecture, la mise à jour et la suppression sur une tranche en mémoire afin d'illustrer le cycle de vie.

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))
}

Vérification des erreurs

Chaque appel GORM renvoie un *gorm.DB dont le champ Error contient toute erreur éventuelle. Un enregistrement absent produit gorm.ErrRecordNotFound avec First.

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

Chaînage des méthodes

GORM utilise un générateur chaînable : db.Where(...).Order(...).Limit(...).Find(&users). Chaque méthode restreint la requête, et la dernière méthode (Find, First) l'exécute.

Insertion par lots

Transmettez une tranche à Create pour insérer plusieurs lignes dans une seule requête. CreateInBatches divise les tranches très volumineuses en blocs afin de respecter les limites.

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

Vérification rapide

Vérifiez vos connaissances sur les opérations CRUD.

Récapitulatif

Vous avez appris les opérations CRUD :

  • Create insère un enregistrement et renseigne la clé primaire
  • First et Find lisent respectivement une ligne et plusieurs lignes
  • Enregistrer, Update et Updates modifient les données ; les cartes imposent les valeurs zéro
  • La suppression est logique lorsque DeletedAt existe
  • Vérifiez le champ d'erreur ; enchaînez les méthodes pour les requêtes complexes

Questions Fréquemment Posées

La leçon « Opérations CRUD » est-elle gratuite ?

Oui — le texte complet de « Opérations CRUD » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Go Academy, passe à CoddyKit PRO. Le cours Go Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Opérations CRUD » ?

Créer, lire, modifier et supprimer Tu pratiques Go Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Go Academy ?

Aucune expérience préalable n'est requise. Go Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Opérations CRUD » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Go Academy ?

Oui. Chaque leçon Go Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Modèles et AutoMigrate
  2. Opérations CRUD
  3. Associations
  4. Hooks et portées
← Retour à Go Academy