Golang 连接 PostgreSQL 15 - 使用 Cobra 解析参数
使用 Cobra 连接 Golang 到 PostgreSQL 15
本指南将展示如何使用 Golang 连接到 PostgreSQL 数据库,并使用 Cobra 包解析命令行参数。
代码示例
以下是使用 Cobra 包解析参数的 Golang 代码:
package main
import (
"database/sql"
"fmt"
"os"
_ "github.com/lib/pq"
"github.com/spf13/cobra"
)
var rootCmd = &cobra.Command{
Use: "myapp",
Short: "Connect to PostgreSQL",
Run: connectToPostgres,
}
var username, password, address string
func init() {
rootCmd.PersistentFlags().StringVarP(&username, "username", "u", "", "PostgreSQL username")
rootCmd.PersistentFlags().StringVarP(&password, "password", "p", "", "PostgreSQL password")
rootCmd.PersistentFlags().StringVarP(&address, "address", "a", "", "PostgreSQL database address")
rootCmd.MarkPersistentFlagRequired("username")
rootCmd.MarkPersistentFlagRequired("password")
rootCmd.MarkPersistentFlagRequired("address")
}
func main() {
if err := rootCmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}
func connectToPostgres(cmd *cobra.Command, args []string) {
connStr := fmt.Sprintf("postgres://%s:%s@%s/postgres?sslmode=disable", username, password, address)
db, err := sql.Open("postgres", connStr)
if err != nil {
fmt.Println(err)
return
}
defer db.Close()
err = db.Ping()
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Successfully connected to PostgreSQL!")
}
运行程序
使用命令行运行程序:
$ myapp --username=root --password=KXGNEYpkyxuXXfRB --address=192.168.1.100:5432
注意
请确保已经安装了 github.com/spf13/cobra 和 github.com/lib/pq 包。
原文地址: https://www.cveoy.top/t/topic/nheB 著作权归作者所有。请勿转载和采集!