美文网首页Golang语言社区
Go语言开发中PostgreSQL的应用

Go语言开发中PostgreSQL的应用

作者: 小歪子go | 来源:发表于2018-01-31 10:22 被阅读34次

PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。
PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发集团(全球志愿者团队)开发。 它不受任何公司或其他私人实体控制。 它是开源的,其源代码是免费提供的。
PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,FreeBSD,OS X,Solaris和Microsoft Windows等。
下面主要讲讲PostgreSQL在Go语言开发中的应用
首先创建相应的数据库和表

CREATE DATABASE medex
  WITH OWNER = kekang
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'C'
       LC_CTYPE = 'C'
       CONNECTION LIMIT = -1;

CREATE TABLE public.student
(
  uid integer NOT NULL DEFAULT nextval('student_uid_seq'::regclass),
  name character(256),
  sex character(5),
  address character(256),
  age smallint,
  CONSTRAINT uid PRIMARY KEY (uid)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.student
  OWNER TO kekang;
一、数据库的链接
db, err := sql.Open("postgres", "user=kekang password=kkwangbiao dbname=medex sslmode=disable")
二、数据库的插入
func instertToPostgresDB(db *sql.DB) {
    stmt, err := db.Prepare("INSERT INTO student(name,sex,address,age) VALUES($1,$2,$3,$4)")
    _, err = stmt.Exec("zhangcheng", "F", "yuuyyuu小学", 2)
}
三、数据库的更新
func updatePostgresDB(db *sql.DB) {
    stmt, err := db.Prepare("update student set name=$1 where uid=$2")
    checkErr(err)
    res, err := stmt.Exec("zhangsanup", 1)
    checkErr(err)
    affected, err := res.RowsAffected()
    checkErr(err)
    fmt.Println(affected)
}
四、数据库的查询
func selectFromPostgresDB(db *sql.DB) {
    rows, err := db.Query("select * from student")
    for rows.Next() {
        var uid int
        var name string
        var sex string
        var address string
        var age int
        err = rows.Scan(&uid, &name, &sex, &address, &age)
        checkErr(err)
        fmt.Println(uid)
        fmt.Println(name)
        fmt.Println(sex)
        fmt.Println(address)
        fmt.Println(age)
    }
}
五、数据库的删除
func deleteFromPostgresDB(db *sql.DB) {
    stmt, err := db.Prepare("delete from student where uid=$1")
    checkErr(err)
    res, err := stmt.Exec(1)
    checkErr(err)
    affect, err := res.RowsAffected()
    fmt.Println(affect)
}

方法中用到的自定义函数
func checkErr(err error) {
    if err != nil {
        panic(err)
    }
}
同mySQL的比较

PostgreSQL是通过$1,$2这种方式来指定要传递的参数,
MySQL中通过?方式来传递参数,
在sql.Open函数中的dsn信息的格式也与MySQL的驱动中的dsn格式不一样

参考教程

PostgreSQL教程

相关文章

  • Go语言开发中PostgreSQL的应用

    PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做...

  • Go Web编程.epub

    【下载地址】 《Go Web编程》介绍如何用Go语言进行Web应用的开发,将Go语言的特性与Web开发实战组合到一...

  • PGWEB

    pgweb 是一个采用 Go 语言开发的基于 Web 的 PostgreSQL 管理系统。 主要特性: 可连接到本...

  • 《开发者头条》每日精选(7-14)

    [英] 使用 Go 语言开发 iOS & Android 应用 sourcedna.com by SourceDN...

  • GO语言实战

    Go 语言是由谷歌公司在 2007 年开始开发的一门语言,目的是能在多核心时代高效编写网络 应用程序。Go 语言的...

  • 一、Docker 之初识

    Docker 是一个开源的应用容器引擎,基于 GO 语言开发。提供 Docker 容器 可以封装 开发者的应用以及...

  • Go语言开发必读书目,从菜鸟到大牛必备

    Go语言是最近几年流行起来的语言,该语言有谷歌发明,并得到广泛的应用。Go语言最大的特点是并发支持度好,而且开发效...

  • 通过项目学习Go语言之gatekeeper请求流程

    在前面的《通过项目学习Go语言之...》系列文章中,我们对Go语言开发环境的配置以及开发项目最基础的功能之go m...

  • Go语言操作Redis

    Go语言操作Redis 在项目开发中redis的使用也比较频繁,本文介绍了Go语言中go-redis库的基本使用。...

  • Go语言入坑

    GO语言基础 认识并安装GO语言开发环境 Go语言简介 Go语言是谷歌2009年发布的第二款开源编程语言 go语言...

网友评论

    本文标题:Go语言开发中PostgreSQL的应用

    本文链接:https://www.haomeiwen.com/subject/umkkzxtx.html