Go 言語の人気が高まるにつれ、多くの開発者がプロジェクトの開発に Golang を使用しています。重要な問題の 1 つは、データをどのように保存するかです。この記事では、Golang を使用してデータを保存するさまざまな方法について説明します。
JSON はデータ交換用の軽量形式です。 Golang では、encoding/json
パッケージを使用して、構造体のデータを JSON 形式のデータにエンコードできます。 json.Unmarshal()
メソッドを使用して JSON を Go 構造にデコードすることもできます。
たとえば、構造体を作成して 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)) }
出力:
{"name":"Jack","age":25}
json.Unmarshal()
JSON を構造体にデコードする方法:
jsonString := `{"name":"Jack","age":25}` person := Person{} json.Unmarshal([]byte(jsonString), &person) fmt.Printf("Name: %s, Age: %d", person.Name, person.Age)
出力:
Name: Jack, Age: 25
Golang の標準ライブラリ #database に ## があります/sql パッケージ。SQL データベースへのアクセスに使用できます。このパッケージを使用してデータを保存および取得できます。
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)
database/sql パッケージを使用してデータを取得することもできます。データベースからデータを取得する例を次に示します。
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) }
mgo パッケージを使用して 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) }
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) }
以上がGolang を使用してデータを保存するさまざまな方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。