Operasi CRUD
Buat, baca, perbarui, hapus
Operasi CRUD adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Operasi CRUD dengan GORM
GORM mengubah empat operasi dasar, Create, Read, Update, Delete, menjadi pemanggilan metode pada *gorm.DB. Anda meneruskan penunjuk ke struktur, lalu GORM membuat SQL-nya.
Create
Create menyisipkan rekaman. Setelah selesai, GORM mengisi kunci utama dan cap waktu struktur dari basis data.
user := User{Name: "Ada", Email: "ada@example.com"}
result := db.Create(&user)
fmt.Println(user.ID, result.RowsAffected)Membaca dengan First
First mengambil rekaman pertama yang cocok, diurutkan berdasarkan kunci utama. Teruskan penunjuk untuk menerima hasilnya; kondisi diberikan sebagai argumen tambahan.
var user User
db.First(&user, 1) // by primary key
db.First(&user, "email = ?", "ada@example.com")Membaca Banyak Rekaman dengan Find
Find memuat beberapa baris ke dalam daftar. Tanpa kondisi, metode ini mengembalikan semua baris; dengan Where, metode ini melakukan penyaringan.
var users []User
db.Where("age > ?", 18).Find(&users)Memperbarui
Save memperbarui semua bidang suatu rekaman. Update dan Updates mengubah kolom tertentu, sehingga bidang yang tidak ingin Anda ubah tidak tertimpa.
db.Model(&user).Update("name", "Ada L.")
db.Model(&user).Updates(User{Name: "Ada", Age: 36})Jebakan Nilai Nol
Saat memperbarui dengan struktur, GORM mengabaikan bidang yang bernilai nol (0, false, ""). Untuk memperbarui kolom menjadi nilai nol, teruskan peta, bukan struktur.
db.Model(&user).Updates(map[string]interface{}{"age": 0, "active": false})Menghapus
Delete menghapus sebuah rekaman. Jika model memiliki bidang DeletedAt, operasi ini merupakan penghapusan lunak yang mengatur cap waktu, bukan menghapus baris.
db.Delete(&user, 1)Simulasi CRUD yang Dapat Dijalankan
GORM memerlukan basis data nyata, jadi contoh yang dapat dijalankan ini memodelkan pembuatan, pembacaan, pembaruan, dan penghapusan pada irisan dalam memori untuk menunjukkan siklus hidupnya.
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))
}Memeriksa Kesalahan
Setiap pemanggilan GORM mengembalikan *gorm.DB yang bidang Error-nya menyimpan kegagalan apa pun. Rekaman yang tidak ditemukan menghasilkan gorm.ErrRecordNotFound pada First.
if err := db.First(&user, 99).Error; err == gorm.ErrRecordNotFound {
fmt.Println("no such user")
}Perangkaian Metode
GORM menggunakan pembangun berantai: db.Where(...).Order(...).Limit(...).Find(&users). Setiap metode mempersempit kueri, dan metode terakhir (Find, First) mengeksekusinya.
Penyisipan Massal
Teruskan irisan ke Create untuk menyisipkan banyak baris dalam satu pernyataan. CreateInBatches membagi irisan yang sangat besar menjadi beberapa bagian agar tetap berada dalam batas.
db.Create(&[]User{{Name: "A"}, {Name: "B"}})Pemeriksaan Singkat
Uji pengetahuan Anda tentang CRUD.
Ringkasan
Anda telah mempelajari operasi CRUD:
- Create menyisipkan data dan mengisi kembali kunci utama
- First dan Find membaca satu atau beberapa baris
- Save, Update, dan Updates mengubah data; peta memaksa penggunaan nilai nol
- Delete melakukan penghapusan lunak jika DeletedAt tersedia
- Periksa bidang Error; rangkai metode untuk kueri yang kompleks
Belajar Go dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Operasi CRUD” gratis?
Ya — teks lengkap “Operasi CRUD” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Operasi CRUD”?
Buat, baca, perbarui, hapus Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Operasi CRUD” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Model dan AutoMigrate
- Operasi CRUD
- Asosiasi
- Hook dan Scope