Home >Backend Development >Golang >Let's talk about different ways to save data using Golang
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)The above code adds a person's data to the MySQL database. We can also use the
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) }The above code will retrieve everyone's data and print it on the console.
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) }The above code adds a person's data to the MongoDB database. The following is an example of retrieving data from 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) }The above code will retrieve everyone's data and print it on the console. SummaryThis article introduces different ways to save data in Golang using different methods, including using JSON, SQL databases and NoSQL databases. Each of these methods has different advantages and use cases. Developers should choose the mode for data preservation that best suits their project needs.
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!