Dengan peningkatan populariti bahasa Go, ramai pembangun menggunakan Golang untuk pembangunan dalam projek. Salah satu soalan penting ialah bagaimana untuk menyimpan data. Dalam siaran ini, kita akan membincangkan cara yang berbeza untuk menyimpan data menggunakan Golang.
JSON ialah format ringan untuk pertukaran data. Di Golang, kita boleh menggunakan pakej encoding/json
untuk mengekod data daripada struktur ke dalam data berformat JSON. Kami juga boleh menggunakan kaedah json.Unmarshal()
untuk menyahkod JSON ke dalam struktur Go.
Sebagai contoh, mari buat struct dan kodkannya ke JSON:
type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { person := Person{Name: "Jack", Age: 25} jsonPerson, _ := json.Marshal(person) fmt.Println(string(jsonPerson)) }
Output:
{"name":"Jack","age":25}
Kita juga boleh menggunakan kaedah json.Unmarshal()
untuk JSON dinyahkodkan kepada struktur:
jsonString := `{"name":"Jack","age":25}` person := Person{} json.Unmarshal([]byte(jsonString), &person) fmt.Printf("Name: %s, Age: %d", person.Name, person.Age)
Output:
Name: Jack, Age: 25
Pustaka standard Golang mempunyai database/sql
Pakej yang boleh digunakan untuk mengakses pangkalan data SQL. Kita boleh menggunakan pakej ini untuk menyimpan dan mendapatkan semula data.
Sebagai contoh, kita boleh menyambung ke pangkalan data MySQL dan menyimpan data seseorang:
db, _ := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database") defer db.Close() sqlInsert := `INSERT INTO people (name, age) VALUES (?, ?)` stmt, _ := db.Prepare(sqlInsert) defer stmt.Close() res, _ := stmt.Exec("Jack", 25) id, _ := res.LastInsertId() fmt.Println("Inserted a new person with ID:", id)
Kod di atas menambah data seseorang ke pangkalan data MySQL.
Kami juga boleh menggunakan pakej database/sql
untuk mendapatkan semula data. Berikut ialah contoh mendapatkan semula data daripada pangkalan data:
rows, _ := db.Query("SELECT * FROM people") var name string var age int for rows.Next() { rows.Scan(&id, &name, &age) fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age) }
Kod di atas akan mendapatkan semula data semua orang dan mencetaknya pada konsol.
Tidak seperti pangkalan data SQL, pangkalan data NoSQL lebih sesuai untuk data tidak berstruktur. Salah satu pangkalan data NoSQL yang paling popular di Golang ialah MongoDB. Kami boleh menggunakan pakej mgo
untuk menyambung ke MongoDB dan menyimpan serta mendapatkan data.
Berikut ialah contoh menyimpan data seseorang ke MongoDB:
session, _ := mgo.Dial("mongodb://localhost:27017") defer session.Close() c := session.DB("mydb").C("people") err := c.Insert(&Person{Name: "Jack", Age: 25}) if err != nil { log.Fatal(err) }
Kod di atas menambahkan data seseorang ke pangkalan data MongoDB.
Berikut ialah contoh mendapatkan semula data daripada MongoDB:
results := []Person{} err := c.Find(bson.M{}).All(&results) if err != nil { log.Fatal(err) } for _, person := range results { fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age) }
Kod di atas akan mendapatkan semula data semua orang dan mencetaknya pada konsol.
Ringkasan
Artikel ini memperkenalkan cara yang berbeza untuk menyimpan data di Golang menggunakan kaedah yang berbeza, termasuk menggunakan pangkalan data JSON, SQL dan pangkalan data NoSQL. Setiap kaedah ini mempunyai kelebihan dan kes penggunaan yang berbeza. Pembangun harus memilih mod untuk pemeliharaan data yang paling sesuai dengan keperluan projek mereka.
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara yang berbeza untuk menyimpan data menggunakan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!