Go Academy · Pelajaran

Operasi CRUD

Buat, baca, perbarui, hapus

Pelajaran 2 dari 413 langkah

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
Gratis untuk memulai

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

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