Go Academy · Pelajaran

Operasi CRUD

Cipta, baca, kemas kini dan padam

Pelajaran 2 daripada 413 langkah

Operasi CRUD ialah pelajaran Go Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Go Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Go Academy merangkumi sejumlah 4 pelajaran.

CRUD dengan GORM

GORM menukarkan empat operasi asas, Create, Read, Update, Delete, kepada panggilan kaedah pada *gorm.DB. Anda menghantar penuding kepada struktur dan GORM membina SQL.

Create

Create memasukkan satu rekod. Selepas ia berjalan, GORM mengisi kunci utama dan cap masa struktur daripada pangkalan data.

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

Membaca dengan First

First mendapatkan rekod pertama yang sepadan, disusun mengikut kunci utama. Hantar penuding untuk menerima hasilnya; syarat diberikan sebagai argumen tambahan.

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

Membaca Banyak Rekod dengan Find

Find memuatkan berbilang baris ke dalam senarai. Tanpa syarat, ia mengembalikan semua baris; dengan Where, ia menapis hasilnya.

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

Update

Save mengemas kini semua medan sesuatu rekod. Update dan Updates mengubah lajur tertentu, yang mengelakkan medan yang tidak anda niatkan daripada ditulis ganti.

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

Perkara yang Perlu Diberi Perhatian tentang Nilai Sifar

Apabila mengemas kini dengan struktur, GORM mengabaikan medan bernilai sifar (0, false, ""). Untuk mengemas kini lajur kepada nilai sifar, hantar peta dan bukannya struktur.

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

Delete

Delete membuang satu rekod. Jika model mempunyai medan DeletedAt, operasi ini ialah pemadaman lembut yang menetapkan cap masa dan bukannya membuang baris.

db.Delete(&user, 1)

Simulasi CRUD yang Boleh Dijalankan

GORM memerlukan pangkalan data sebenar, jadi contoh yang boleh dijalankan ini memodelkan create, read, update dan delete pada senarai dalam ingatan untuk menunjukkan kitar hayatnya.

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

Menyemak Ralat

Setiap panggilan GORM mengembalikan *gorm.DB yang medan Error-nya menyimpan sebarang kegagalan. Rekod yang tiada menghasilkan gorm.ErrRecordNotFound pada First.

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

Rantaian Kaedah

GORM menggunakan pembina yang boleh dirantaikan: db.Where(...).Order(...).Limit(...).Find(&users). Setiap kaedah mengecilkan skop pertanyaan, dan kaedah terakhir (Find, First) melaksanakannya.

Penyisipan Berkelompok

Hantar senarai kepada Create untuk menyisipkan banyak baris dalam satu pernyataan. CreateInBatches membahagikan senarai yang sangat besar kepada kelompok supaya kekal dalam had.

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

Semakan Ringkas

Uji pengetahuan anda tentang CRUD.

Ulang Kaji

Anda telah mempelajari operasi CRUD:

  • Create menyisipkan rekod dan mengisi semula kunci utama
  • First dan Find membaca satu atau banyak baris
  • Save, Update dan Updates mengubah data; peta memaksa nilai sifar
  • Delete melakukan pemadaman lembut apabila DeletedAt wujud
  • Semak medan Error; rantaikan kaedah untuk pertanyaan yang kompleks
Percuma untuk bermula

Pelajari Go dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
51
Pelajaran
203

Soalan Lazim

Adakah pelajaran “Operasi CRUD” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Go Academy, termasuk “Operasi CRUD”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Go Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Operasi CRUD”?

Cipta, baca, kemas kini dan padam Anda berlatih Go Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Go Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Go Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Operasi CRUD” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Model dan AutoMigrate
  2. Operasi CRUD
  3. Perkaitan
  4. Hook dan Skop
← Kembali ke Go Academy