Golang PostgreSQL驱动简介

栏目: Go · 发布时间: 7年前

内容简介:用于golang database/sql 的PostgreSQL驱动[![GoDoc](https://godoc.org/github.com/blusewang/pg?status.svg)](https://godoc.org/github.com/blusewang/pg)[![Build Status](https://travis-ci.org/blusewang/pg.svg?branch=master)](https://travis-ci.org/blusewang/pg)

用于golang database/sql 的PostgreSQL驱动

[![GoDoc](https://godoc.org/github.com/blusewang/pg?status.svg)](https://godoc.org/github.com/blusewang/pg)

[![Build Status](https://travis-ci.org/blusewang/pg.svg?branch=master)](https://travis-ci.org/blusewang/pg)

[![license](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://github.com/blusewang/pg/blob/master/LICENSE)

#### Go Version Support

![Go version](https://img.shields.io/badge/Go-1.11-brightgreen.svg)

#### PostgreSQL Version Support

![PostgreSQL version](https://img.shields.io/badge/PostgreSQL-10.5-brightgreen.svg)

![PostgreSQL version](https://img.shields.io/badge/PostgreSQL-11.1-brightgreen.svg)

## 安装

go get github.com/blusewang/pg

## 使用

```golang

db, err := sql.Open("pg", "postgresql://user:password@host_name/database_name?application_name=app_name")

if err != nil {

return err

}

defer db.Close()

rows, err := db.Query("select * from bluse where id>$1", 0)

if err != nil {

return err

}

...

```

## 文档

更多的细节及使用示例,参见:.

## 特性

* 在`Scan()`时,对`null`值宽容。不推荐使用`sql.Null`系列类型,接受`null`值!

* 以字符串字段的`null`值为例:向`Scan()`中传`string`型的变量,得到`""`,传`*string`型的变量,得到`nil`。

* 常见`Array`类型直接兼容golang的数组类型。如PG的:`integer[]`,对应golang的:`[]int64`

* 数据源格式,既支持键值对,又支持URI。书写格式遵守:[PG官方规范](https://www.postgresql.org/docs/10/libpq-connect.html#LIBPQ-CONNSTRING)。

* URI格式,支持`pg://`前缀。

* 其中用户名、端口、主机名,在数据源中未指定时,有默认值。用户名默认为操作系统当前用户的用户名

* 积极标记并缓存所有预备语句[包括`db.Query`、`db.Exec`、`db.Prepare()`等的语句],遇到相同的语句请求时,自动复用。**这能提高1倍的执行速度!!!**

* 为了发挥好此功能,需要最大可能地允许数据库连接空闲。

* 配置上推荐将`sql.SetMaxIdleConns(x)`、`sql.SetMaxOpenConns(x)`两处的x设置为相同的值!

## 协议实现

- 此驱动更适合服务于Web

|状态|功能|备注|

| :---- | :---- | :---- |

|

  • -[x]

|启动|必备,实现:无密码,明文密码和md5密码三种认证|

|

  • -[x]

|简单查询|必备|

|

  • -[x]

|扩展查询|必备|

|

  • -[x]

|取消正在处理的请求|必备|

|

  • -[x]

|终止|必备|

|

  • - [  ]

|函数调用|PG官方推荐使用查询去调用函数|

|

  • - [  ]

|SASL 认证|不常用|

|

  • - [  ]

|异步操作|不常用|

|

  • - [  ]

|COPY操作|不常用|

|

  • - [  ]

|SSL会话加密|低效|


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

娱乐至死

娱乐至死

[美] 尼尔·波兹曼 / 章艳 / 广西师范大学出版社 / 2011-6 / 29.80元

《娱乐至死》是对20世纪后半叶美国文化中最重大变化的探究和哀悼:印刷术时代步入没落,而电视时代蒸蒸日上;电视改变了公众话语的内容和意义;政治、宗教、教育和任何其他公共事务领域的内容,都不可避免的被电视的表达方式重新定义。电视的一般表达方式是娱乐。一切公众话语都日渐以娱乐的方式出现,并成为一种文化精神。一切文化内容都心甘情愿地成为娱乐的附庸,而且毫无怨言,甚至无声无息,“其结果是我们成了一个娱乐至死......一起来看看 《娱乐至死》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具