
pgx PostgreSQL的純Go驅(qū)動程序和工具包
pgx 是用于 PostgreSQL 的純 Go 驅(qū)動程序和工具包。
pgx 驅(qū)動程序是一個低級、高性能的接口,它 expose 了 PostgreSQL 特有的功能,如 LISTEN / NOTIFY 和 COPY。它還包括一個標(biāo)準(zhǔn)?database/sql?接口適配器。
工具包組件是一組相關(guān)的軟件包,用于實現(xiàn) PostgreSQL 的功能,如解析線協(xié)議和 PostgreSQL 與 Go 之間的類型映射。這些底層軟件包可用于實現(xiàn)替代驅(qū)動程序、代理、負載平衡器、邏輯復(fù)制客戶端等。
用法示例:
package?main import?( "context" "fmt" "os" "github.com/jackc/pgx/v5" ) func?main()?{ //?urlExample?:=?"postgres://username:password@localhost:5432/database_name" conn,?err?:=?pgx.Connect(context.Background(),?os.Getenv("DATABASE_URL")) if?err?!=?nil?{ fmt.Fprintf(os.Stderr,?"Unable?to?connect?to?database:?%v\n",?err) os.Exit(1) } defer?conn.Close(context.Background()) var?name?string var?weight?int64 err?=?conn.QueryRow(context.Background(),?"select?name,?weight?from?widgets?where?id=$1",?42).Scan(&name,?&weight) if?err?!=?nil?{ fmt.Fprintf(os.Stderr,?"QueryRow?failed:?%v\n",?err) os.Exit(1) } fmt.Println(name,?weight) }
特性:
支持大約 70 種不同的 PostgreSQL 類型
自動語句準(zhǔn)備和緩存
批量查詢
單次往返查詢方式
完整的 TLS 連接控制
對自定義類型的二進制格式支持(允許更快的編碼 / 解碼)
COPY?協(xié)議支持,實現(xiàn)更快的批量數(shù)據(jù)加載
Tracing 和 logging 支持
帶有 after-connect hook 的連接池,用于任意連接設(shè)置
LISTEN/NOTIFY
將 PostgreSQL 數(shù)組轉(zhuǎn)換為整數(shù)、浮點數(shù)和字符串的 Go 切片映射
hstore?支持
json?和?jsonb?支持
將?inet?和?cidrPostgreSQL 類型映射為?netip.Addr?和?netip.Prefix
Large object? 支持
NULL 映射為?pointer to pointer
支持自定義類型的?database/sql.Scanner?和?database/sql/driver.Valuer?接口
通知響應(yīng)處理
使用保存點模擬嵌套事務(wù)
[超站]友情鏈接:
四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級服務(wù)市場:https://www.ijiandao.com/

隨時掌握互聯(lián)網(wǎng)精彩
- 1 情暖天山氣象新 7904885
- 2 廣東或大范圍停工 7807980
- 3 中方回應(yīng)“金正恩稱絕不放棄核武” 7714088
- 4 國慶中秋臨近 文旅部發(fā)出游提示 7617684
- 5 “風(fēng)王”完成眼墻置換 可能海水倒灌 7520457
- 6 3×8還是8×3?80后90后家長吵翻了 7427027
- 7 臺風(fēng)“樺加沙”強度已達17級以上 7333084
- 8 中產(chǎn)運動三件套又換了 7237949
- 9 金正恩稱朝韓絕不會合并 7140763
- 10 24日廣東省內(nèi)所有列車停運 7045148