ホームページ > バックエンド開発 > Golang > Golang を使用してデータを保存するさまざまな方法について話しましょう

Golang を使用してデータを保存するさまざまな方法について話しましょう

PHPz
リリース: 2023-04-03 10:19:44
オリジナル
1011 人が閲覧しました

Go 言語の人気が高まるにつれ、多くの開発者がプロ​​ジェクトの開発に Golang を使用しています。重要な問題の 1 つは、データをどのように保存するかです。この記事では、Golang を使用してデータを保存するさまざまな方法について説明します。

  1. JSON の使用

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
ログイン後にコピー
  1. SQL データベースを使用する

Golang の標準ライブラリ #database に ## があります/sql パッケージ。SQL データベースへのアクセスに使用できます。このパッケージを使用してデータを保存および取得できます。

たとえば、MySQL データベースに接続して、個人のデータを保存できます。

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)
ログイン後にコピー
上記のコードは、個人のデータを MySQL データベースに追加します。

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)
}
ログイン後にコピー
上記のコードは全員のデータを取得し、コンソールに出力します。

    NoSQL データベースの使用
SQL データベースとは異なり、NoSQL データベースは非構造化データに適しています。 Golang で最も人気のある NoSQL データベースの 1 つは MongoDB です。

mgo パッケージを使用して MongoDB に接続し、データを保存および取得できます。

以下は、個人のデータを 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)
}
ログイン後にコピー
上記のコードは、個人のデータを MongoDB データベースに追加します。

以下は、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)
}
ログイン後にコピー
上記のコードは全員のデータを取得し、コンソールに出力します。

概要

この記事では、JSON、SQL データベース、NoSQL データベースの使用など、さまざまな方法を使用して Golang でデータを保存するさまざまな方法を紹介します。これらの方法にはそれぞれ、異なる利点と使用例があります。開発者は、プロジェクトのニーズに最も適したデータ保存モードを選択する必要があります。

以上がGolang を使用してデータを保存するさまざまな方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート