Golang连接postgresql示例
package main
import (
"context"
"fmt"
"log"
"time"
"github.com/jackc/pgx/v4"
"github.com/jackc/pgx/v4/pgxpool"
)
const (
// 连接字符串包含用户名、密码、数据库名和主机地址
connString = "postgres://username:password@localhost/database?sslmode=disable"
)
func main() {
// 建立连接池
pool, err := pgxpool.Connect(context.Background(), connString)
if err != nil {
log.Fatalf("连接数据库失败: %v\n", err)
}
defer pool.Close()
// 创建上下文
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
// 执行查询
var name string
err = pool.QueryRow(ctx, "SELECT name FROM widgets WHERE id = $1", 42).Scan(&name)
if err != nil {
log.Fatalf("查询失败: %v\n", err)
}
fmt.Printf("查询结果: %s\n", name)
}
这段代码演示了如何使用pgx
库在Go语言中连接并查询PostgreSQL数据库。首先,它创建了一个数据库连接池,然后在该连接池上执行了一个查询操作。代码使用了上下文(context)来处理请求的超时和取消操作,这是现代Go语言中的一种常见做法。
评论已关闭