golang 提供了与 Mysql、postgresql 和 mongodb 等不同数据库集成的实战解决方案:连接 mysql:使用 database/sql 包和 go-sql-driver/mysql 驱动程序。查询 postgresql:使用 pgx/v4 和 stdlib 扩展连接到数据库并执行查询。插入 mongodb:使用 mongo-driver 库连接到数据库并向集合中插入数据。

Golang 与各种数据库的集成实战
前言
在现代应用程序开发中,数据库集成至关重要。Golang 作为一门流行的编程语言,提供了强大的功能来无缝连接各种数据库。本文将介绍 Golang 与不同数据库(如 MySQL、PostgreSQL 和 MongoDB)集成的实战案例。
立即学习“go语言免费学习笔记(深入)”;
案例 1:连接 MySQL
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 
packagemain
 
 import(
     "database/sql"
     "fmt"
 
     _ "Github.com/go-sql-driver/mysql"
 )
 
 funcmain() {
     db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database")
     iferr != nil{
         fmt.Println(err)
         return
     }
     deferdb.Close()
 }
 | 
 
案例 2:查询 PostgreSQL
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 
packagemain
 
 import(
     "context"
     "fmt"
 
     "github.com/jackc/pgx/v4"
     "github.com/jackc/pgx/v4/stdlib"
 )
 
 funcmain() {
     connString := "user=user password=password host=127.0.0.1 port=5432 database=database"
     pool, err := pgx.Newpool(context.Background(), stdlib.RegisterConnConfig(connString))
     iferr != nil{
         fmt.Println(err)
         return
     }
     deferpool.Close()
 
     rows, err := pool.Query(context.Background(), "SELECT * FROM users")
     iferr != nil{
         fmt.Println(err)
         return
     }
 
     forrows.Next() {
         varid int
         varname string
         err := rows.Scan(&id, &name)
         iferr != nil{
             fmt.Println(err)
             continue
         }
         fmt.Printf("ID: %d, Name: %s\n", id, name)
     }
 }
 | 
 
案例 3:插入 MongoDB
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 
packagemain
 
 import(
     "context"
     "fmt"
     "log"
 
     "go.mongodb.org/mongo-driver/mongo"
     "go.mongodb.org/mongo-driver/mongo/options"
 )
 
 funcmain() {
     clientOptions := options.Client().applyURI("mongodb://localhost:27017")
     client, err := mongo.Connect(context.Background(), clientOptions)
     iferr != nil{
         log.Fatal(err)
     }
 
     db := client.Database("mydb")
     collection := db.Collection("users")
 
     insertResult, err := collection.InsertOne(context.Background(), map[string]interface{}{
         "name": "John Doe",
         "age": 30,
     })
     iferr != nil{
         log.Fatal(err)
     }
 
     fmt.Printf("Inserted document with ID: %s\n", insertResult.InsertedID)
 }
 | 
 
结论
通过这些实战案例,我们展示了 Golang 如何轻松地与 MySQL、PostgreSQL 和 MongoDB 等各种数据库集成。利用 Golang 的强大功能,开发人员可以构建可靠且高效的数据驱动的应用程序。