加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Go语言操作PostgreSQL数据库——学习笔记

发布时间:2020-12-13 16:52:48 所属栏目:百科 来源:网络整理
导读:Go实现的支持PostgreSQL的驱动有很多,但是github.com/lib/pq是目前使用最广泛的,也是最稳定的一个Go语言实现的PostgreSQL驱动。这里,我就使用 github.com/lib/pq(以下简称pq)来进行演示。 首先需要创建一个数据库表,语句如下: CREATE TABLE public."u

Go实现的支持PostgreSQL的驱动有很多,但是github.com/lib/pq是目前使用最广泛的,也是最稳定的一个Go语言实现的PostgreSQL驱动。这里,我就使用github.com/lib/pq(以下简称pq)来进行演示。

首先需要创建一个数据库表,语句如下:

CREATE TABLE public."user"
(
  id serial NOT NULL,name character(100) COLLATE pg_catalog."default" NOT NULL,age integer NOT NULL,CONSTRAINT user_pkey PRIMARY KEY (id)
)
WITH (
  OIDS = FALSE
)
TABLESPACE pg_default;


ALTER TABLE public."user"
  OWNER to postgres;

下面演示下简单的增删改查。代码如下:
package main

import (
	"fmt"
	"database/sql"
	_ "github.com/lib/pq"
)

func checkErr(err error)  {
	if err!=nil{
		fmt.Println(err)
	}
}

func main()  {

	//插入数据
	db,err:=sql.Open("postgres","host=127.0.0.1 port=5432 user=postgres password=1234567 sslmode=disable")
	checkErr(err)
	stmt,err:=db.Prepare("INSERT INTO PUBLIC.user(name,age) VALUES ($1,$2) RETURNING id")
	checkErr(err)
	res,err:=stmt.Exec("jack",23)
	//受影响行数
	id,err:=res.RowsAffected()
	checkErr(err)
	fmt.Println(id)

	//修改数据
	stmt,err=db.Prepare("UPDATE  PUBLIC.user set name=$1 where id=$2")
	checkErr(err)
	res,err =stmt.Exec("hellen",1)
	checkErr(err)
	affect,err:=res.RowsAffected()
	checkErr(err)
	fmt.Println(affect)

	//查询数据
	rows,err:=db.Query("SELECT * FROM PUBLIC.user")
	checkErr(err)
	for rows.Next(){
		var id int
		var name string
		var age int
		err=rows.Scan(&id,&name,&age)
		checkErr(err)
		fmt.Printf("%d  %s  %dn",id,name,age)
	}

	//删除数据
	stmt,err=db.Prepare("DELETE FROM PUBLIC.user where id=$1")
	checkErr(err)

	res,err=stmt.Exec(10)
	res,err=stmt.Exec(11)
	res,err=stmt.Exec(12)
	checkErr(err)
	affect,err=res.RowsAffected()
	fmt.Println(affect)
	db.Close()



}


                        

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读