Rumah  >  Artikel  >  pangkalan data  >  Pangkalan data MySQL dan bahasa Go: bagaimana untuk merangkum data?

Pangkalan data MySQL dan bahasa Go: bagaimana untuk merangkum data?

王林
王林asal
2023-06-17 08:56:271314semak imbas

Pangkalan data MySQL dan bahasa Go: bagaimana untuk merangkum data?

Dalam membangunkan aplikasi web, biasanya kita perlu berinteraksi dengan pangkalan data untuk menyimpan dan mendapatkan semula data. MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan, manakala bahasa Go ialah bahasa yang disusun secara statik Terima kasih kepada pengkompil yang cekap dan keupayaan pemprosesan serentak yang sangat baik, ia kini semakin popular dalam bidang pembangunan web.

Dalam proses interaksi data menggunakan MySQL dan bahasa Go, kita perlu mempertimbangkan cara merangkum data untuk menjadikan kod lebih boleh diselenggara, berskala dan boleh dibaca. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk merangkum data MySQL.

1. Gambaran Keseluruhan

Dalam bahasa Go, kita boleh menggunakan struktur untuk menentukan jenis tersuai Medan dalam struktur boleh mewakili satu atau lebih medan data. Apabila merangkum data MySQL, kami biasanya menggunakan struktur untuk mewakili item data dalam jadual, menjadikan kod lebih mudah untuk ditulis dan difahami.

Selain struktur, bahasa Go juga menyediakan konsep jenis bersarang, supaya kami boleh membenamkan dan menggabungkan jenis lain untuk membina jenis data yang lebih kompleks. Fungsi jenis terbenam membolehkan kami menjadikan kod lebih cekap dan ringkas tanpa memusnahkan reka bentuk.

2. Mengekapsulkan data MySQL

Apabila merangkum data MySQL, kami mempunyai pelbagai kaedah untuk digunakan. Artikel ini akan memperkenalkan tiga kaedah biasa berikut untuk merangkum data MySQL:

2.1 Struktur

Kami boleh menggunakan struktur untuk merangkum setiap item data dalam jadual MySQL, dan setiap medan boleh Sepadan dengan lajur dalam jadual. Contohnya, untuk item data yang mengandungi tiga medan dalam jadual MySQL, kita boleh menggunakan struktur berikut untuk merangkumnya:

type User struct {
    ID        int64 `json:"id"`
    Name      string `json:"name,omitempty"`
    Age       int    `json:"age,omitempty"`
}

Dalam contoh ini, kami menggunakan teg untuk menentukan atribut medan. tag json digunakan untuk menentukan nama medan apabila disiri ke dalam format JSON dan mengabaikan atribut nol. Menggunakan teg memberi kita lebih kawalan ke atas cara setiap medan berkelakuan apabila data dikapsul dan disiri.

2.2 Jenis tersuai

Selain struktur, kami juga boleh menggunakan jenis tersuai untuk pengkapsulan. Jenis tersuai boleh membungkus jenis primitif atau jenis lain untuk mencapai pembinaan jenis data yang kompleks. Sebagai contoh, kita boleh menggunakan jenis berikut untuk merangkum medan ID dalam jadual MySQL:

type UserID int64

Jenis ini boleh menjadikan kod lebih semantik, dan juga boleh meningkatkan keselamatan program dan mengelakkan masalah seperti salah penukaran jenis.

2.3 Jenis gabungan

Selain struktur dan jenis tersuai, kami juga boleh menggabungkan berbilang jenis data untuk melaksanakan struktur data yang lebih kompleks. Sebagai contoh, kita boleh menggunakan jenis gabungan berikut untuk merangkum item data dalam jadual MySQL:

type User struct {
    ID   UserID `json:"id"`
    Name string `json:"name,omitempty"`
    Age  int    `json:"age,omitempty"`
}

Dalam contoh ini, kami menggunakan jenis tersuai UserID untuk merangkum medan ID dalam MySQL dan juga menggunakan teg untuk nyatakan sifat setiap medan.

3. Akses data

Selepas merangkum data MySQL, kita perlu membaca dan menulis data. Dalam bahasa Go, kita boleh menggunakan pakej database/sql dan pustaka ORM pihak ketiga untuk melaksanakan operasi membaca dan menulis data.

3.1 Menggunakan pakej pangkalan data/sql

database/sql pakej ialah perpustakaan pangkalan data standard bahasa Go. Ia menyediakan satu siri API biasa yang boleh digunakan untuk mengakses pelbagai jenis pangkalan data. Berikut ialah beberapa API operasi pangkalan data yang biasa digunakan:

  • Open(): digunakan untuk membuka sambungan pangkalan data
  • Query(): digunakan untuk melaksanakan pernyataan pertanyaan dan mengembalikan hasil pertanyaan; ;
  • Exec(): digunakan untuk melaksanakan pernyataan SQL tanpa mengembalikan sebarang hasil;
  • Prepare()Kami boleh menggunakan contoh kod berikut untuk mengakses pangkalan data MySQL menggunakan pakej
  • :
import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "user:password@tcp(host:port)/database")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    var id int
    var name string
    err = db.QueryRow("SELECT id, name FROM user WHERE id = ?", 1).Scan(&id, &name)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("id: %d, name: %s
", id, name)
}

Dalam contoh ini, kami menggunakan kaedah database/sql untuk membuka MySQL sambungan pangkalan data dan Gunakan kaedah

untuk melaksanakan pernyataan pertanyaan, dan gunakan kaedah

untuk membaca hasil pertanyaan menjadi pembolehubah. Kami juga boleh menggunakan kaedah sql.Open() untuk melaksanakan pernyataan SQL seperti INSERT, UPDATE dan DELETE untuk memasukkan, mengemas kini dan memadam data. QueryRow()Scan()3.2 Menggunakan perpustakaan ORM Exec()

Selain pakej

, kami juga boleh menggunakan perpustakaan ORM pihak ketiga untuk memudahkan operasi capaian data. Perpustakaan ORM memetakan jadual pangkalan data kepada struktur bahasa Go dan merangkum rekod data ke dalam objek, yang boleh meningkatkan kecekapan pembangunan aplikasi dan kualiti kod.

GORM ialah perpustakaan ORM bahasa Go yang popular, yang menyediakan fungsi yang kaya, termasuk definisi model data, pemindahan data, DSL pertanyaan dan transaksi. Kita boleh menggunakan contoh kod berikut untuk mengakses pangkalan data MySQL menggunakan GORM: database/sql

import (
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
)

type User struct {
    gorm.Model
    Name string
    Age  int
}

func main() {
    dsn := "user:password@tcp(host:port)/database"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    var user User
    if err := db.First(&user, 1).Error; err != nil {
        log.Fatal(err)
    }

    fmt.Printf("id: %d, name: %s, age: %d
", user.ID, user.Name, user.Age)
}

Dalam contoh ini, kami mentakrifkan struct bernama

dan menggunakan

jenis sebaris untuk menambah ID lalai, masa penciptaan , masa kemas kini dan medan masa pemadaman. Kami juga menggunakan kaedah

untuk membuka sambungan pangkalan data MySQL, dan menggunakan kaedah User untuk menanyakan rekod pengguna pertama dan membaca hasil pertanyaan ke dalam pembolehubah. gorm.Modelgorm.Open()4

Dalam artikel ini, kami memperkenalkan cara menggunakan bahasa Go untuk merangkum data dalam pangkalan data MySQL. Menggunakan struktur, jenis tersuai dan jenis komposit boleh membantu kami merangkum struktur data yang kompleks ke dalam format yang mudah difahami dan dimanipulasi. Pada masa yang sama, menggunakan pakej database/sql dan perpustakaan ORM boleh memudahkan operasi capaian data dan meningkatkan kualiti kod dan kecekapan pembangunan.

Atas ialah kandungan terperinci Pangkalan data MySQL dan bahasa Go: bagaimana untuk merangkum data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn