pg用于 golang database/sql 的 PostgreSQL 驅動
pg 是一個用于golang database/sql 的 PostgreSQL 驅動。
安裝
go get github.com/blusewang/pg
使用
db, err := sql.Open("pg", "pg://user:[email protected]/database_name?application_name=app_name&sslmode=verify-full") if err != nil { return err } defer db.Close() rows, err := db.Query("select * from bluse where id>$1", 0) if err != nil { return err } ...
文檔
更多的細節(jié)及使用示例,參見: https://godoc.org/github.com/blusewang/pg.
特性
- 常見
Array類型直接兼容golang的數(shù)組類型。如PG的:integer[],對應golang的:[]int64 - 數(shù)據(jù)源格式,既支持鍵值對,又支持URI。書寫格式遵守:PG官方規(guī)范。
- URI格式,支持
pg://前綴。 - 其中用戶名、端口、主機名,在數(shù)據(jù)源中未指定時,有默認值。用戶名默認為操作系統(tǒng)當前用戶的用戶名
- DSN配置中,
strict項是獨立于PG后端之外的。它默認為true。- 若置為
false;在遇到null值時,寬容處理。例:向Scan()中傳string型的指針,得到"",傳*string型的指針,得到""!
- 若置為
- URI格式,支持
- 積極標記并緩存所有預備語句[包括
db.Query、db.Exec、db.Prepare()等的語句],遇到相同的語句請求時,自動復用。這能提高1倍的執(zhí)行速度?。。?/strong>- 為了發(fā)揮好此功能,需要最大可能地允許數(shù)據(jù)庫連接空閑。
- 配置上推薦將
sql.SetMaxIdleConns(x)、sql.SetMaxOpenConns(x)兩處的x設置為相同的值!
協(xié)議實現(xiàn)
- 此驅動更適合服務于Web
| 狀態(tài) | 功能 | 備注 |
|---|---|---|
|
|
啟動 | 必備,實現(xiàn):無密碼,明文密碼和md5密碼三種認證 |
|
|
簡單查詢 | 必備 |
|
|
擴展查詢 | 必備 |
|
|
取消正在處理的請求 | 必備 |
|
|
終止 | 必備 |
|
|
SSL會話加密 | 遠程安全 |
評論
圖片
表情
