Operazioni CRUD
Creare, leggere, aggiornare ed eliminare
Operazioni CRUD è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.
CRUD con GORM
GORM trasforma le quattro operazioni fondamentali, Create, Read, Update, Delete, in chiamate a metodi su *gorm.DB. Si passano puntatori a struct e GORM costruisce l'SQL.
Create
Create inserisce un record. Al termine, GORM valorizza nella struct la chiave primaria e i timestamp restituiti dal database.
user := User{Name: "Ada", Email: "ada@example.com"}
result := db.Create(&user)
fmt.Println(user.ID, result.RowsAffected)Lettura con First
First recupera il primo record corrispondente, ordinato per chiave primaria. Passi un puntatore per ricevere il risultato; le condizioni vengono fornite come argomenti aggiuntivi.
var user User
db.First(&user, 1) // by primary key
db.First(&user, "email = ?", "ada@example.com")Lettura di più record con Find
Find carica più righe in uno slice. Senza condizioni restituisce tutte le righe; con Where applica un filtro.
var users []User
db.Where("age > ?", 18).Find(&users)Update
Save aggiorna tutti i campi di un record. Update e Updates modificano colonne specifiche, evitando di sovrascrivere campi che non intendeva modificare.
db.Model(&user).Update("name", "Ada L.")
db.Model(&user).Updates(User{Name: "Ada", Age: 36})L'insidia dei valori zero
Quando aggiorna usando una struct, GORM ignora i campi con valore zero (0, false, ""). Per aggiornare una colonna impostandola a un valore zero, passi una map invece di una struct.
db.Model(&user).Updates(map[string]interface{}{"age": 0, "active": false})Delete
Delete rimuove un record. Se il model contiene un campo DeletedAt, si tratta di una soft delete: viene impostato il timestamp invece di rimuovere la riga.
db.Delete(&user, 1)Una simulazione CRUD eseguibile
GORM richiede un database reale, quindi questo esempio eseguibile modella create, read, update e delete su uno slice in memoria per mostrare il ciclo di vita.
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))
}Controllo degli errori
Ogni chiamata GORM restituisce un *gorm.DB, il cui campo Error contiene eventuali errori. Se non trova un record, First restituisce gorm.ErrRecordNotFound.
if err := db.First(&user, 99).Error; err == gorm.ErrRecordNotFound {
fmt.Println("no such user")
}Concatenamento dei metodi
GORM usa un builder concatenabile: db.Where(...).Order(...).Limit(...).Find(&users). Ogni metodo restringe la query e il metodo finale (Find, First) la esegue.
Inserimento in batch
Passi uno slice a Create per inserire molte righe con una sola statement. CreateInBatches suddivide gli slice molto grandi in blocchi per restare entro i limiti.
db.Create(&[]User{{Name: "A"}, {Name: "B"}})Verifica rapida
Verifichi le Sue conoscenze sulle operazioni CRUD.
Riepilogo
Ha imparato le operazioni CRUD:
- Create inserisce il record e valorizza la chiave primaria
- First e Find leggono rispettivamente una o più righe
- Save, Update e Updates modificano i dati; le map forzano i valori zero
- Delete esegue una soft delete quando esiste DeletedAt
- Controlli il campo Error e concateni i metodi per le query complesse
Domande Frequenti
La lezione «Operazioni CRUD» è gratuita?
Sì — il testo completo di «Operazioni CRUD» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.
Cosa imparerò in «Operazioni CRUD»?
Creare, leggere, aggiornare ed eliminare Eserciti Go Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Go Academy?
Non è richiesta alcuna esperienza precedente. Go Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Operazioni CRUD»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Go Academy?
Sì. Ogni lezione Go Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Modelli e AutoMigrate
- Operazioni CRUD
- Associazioni
- Hook e scope