Operasi CRUD
Cipta, baca, kemas kini dan padam
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
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
- Model dan AutoMigrate
- Operasi CRUD
- Perkaitan
- Hook dan Skop