Rumah > Artikel > pangkalan data > Pangkalan data MySQL dan bahasa Go: bagaimana untuk merangkum data?
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 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()
, 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.Model
gorm.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!