Postgres
如果你想在 Go 中使用 PostgreSQL,通常会使用 pgx 或 pq 这两个流行的库。以下是如何在 Go 中连接 PostgreSQL 数据库的基本示例。
使用 pgx 库连接 PostgreSQL
首先,确保安装了 pgx 库:
bash
go get github.com/jackc/pgx/v5然后,使用以下代码来连接 PostgreSQL 数据库:
go
package main
import (
"fmt"
"log"
"github.com/jackc/pgx/v5"
)
func main() {
// 配置连接字符串
connConfig, err := pgx.ParseConfig("postgres://username:password@localhost:5432/dbname")
if err != nil {
log.Fatalf("Unable to parse database URL: %v\n", err)
}
// 连接到数据库
conn, err := pgx.ConnectConfig(context.Background(), connConfig)
if err != nil {
log.Fatalf("Unable to connect to database: %v\n", err)
}
defer conn.Close(context.Background())
fmt.Println("Successfully connected to the database!")
// 执行一个简单的查询
var result string
err = conn.QueryRow(context.Background(), "SELECT 'Hello, PostgreSQL!'").Scan(&result)
if err != nil {
log.Fatalf("Query failed: %v\n", err)
}
fmt.Println(result)
}解释:
pgx.ParseConfig()解析数据库连接字符串。pgx.ConnectConfig()用于连接到 PostgreSQL 数据库。conn.QueryRow()执行查询,并使用Scan()获取结果。
使用 pq 库连接 PostgreSQL
pq 是 Go 中另一种常用的 PostgreSQL 驱动,首先安装它:
bash
go get github.com/lib/pq然后,使用以下代码连接 PostgreSQL:
go
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/lib/pq"
)
func main() {
// 配置连接字符串
connStr := "user=username password=password dbname=yourdb sslmode=disable"
// 打开数据库连接
db, err := sql.Open("postgres", connStr)
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 测试连接
err = db.Ping()
if err != nil {
log.Fatal(err)
}
fmt.Println("Successfully connected to the database!")
// 执行查询
var result string
err = db.QueryRow("SELECT 'Hello, PostgreSQL!'").Scan(&result)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)
}解释:
sql.Open("postgres", connStr)连接到数据库。db.Ping()用于确认连接是否成功。db.QueryRow()用于执行查询并获取结果。
你可以根据需要选择 pgx 或 pq,其中 pgx 提供更多的功能,比如更好的性能和更多的配置选项。