With the increasing popularity of Go language, many developers use Golang for development in projects. One of the important questions is how to save the data. In this post, we will discuss different ways to save data using Golang.
JSON is a lightweight format for data exchange. In Golang, we can use the encoding/json
package to encode data from a structure into JSON formatted data. We can also use the json.Unmarshal()
method to decode JSON into a Go structure.
For example, let's create a struct and encode it to 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}
We can also use json.Unmarshal()
Method to decode JSON into a structure:
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
There is a ## in Golang’s standard library #database/sql package, which can be used to access SQL databases. We can use this package to save and retrieve data.
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 package to retrieve data. Here is an example of retrieving data from the database:
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 package to connect to MongoDB and save and retrieve data.
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) }
The above is the detailed content of Let's talk about different ways to save data using Golang. For more information, please follow other related articles on the PHP Chinese website!