go中使用postgres

**注意假设数据表中只有name和password两个字段**
package database
import(
	"fmt"
	"database/sql"
	_"github.com/bmizerany/pq"           //加载驱动需要下载   go get
)

DB *sql.db;

const(
	user="chirs"
	password="1234567890"
	host="172.18.0.3"      //there should alert but there it can work well
	port=5432       //postgres default port
	dbname="userinfo"
)

	

func (db *sql.db)MyInit(){
	parameter:=fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable",host,port,user,password,dbname);
	database.Db,err:=sql.Open("postgres",parameter);
}

//查询表中所有数据
func (db *sql.db)MyQuery(findname string){
	var name,password string;
	rows,err:=Db.Query("select * from tablename where name=$1",findname);
	defer rows.Close();
	for rows.Next(){
		err:=rows.Scan(&name,&password);
		if(err!=nil){
			fmt.Println(err);
		}
	}
}

//查询单条记录
func (db *sql.db)MyQueryRow(findrow string,findname string){
	var password string;
	err:=Db.QueryRow("select $1 from tablename where name=$2",findrow,findname).Scan(&password);
	if err==sql.ErrNoRows{
		//表示查询结果不存在,只有queryrow会返回这个错误,query不会
	}                                                                 
}

func (db *sql.db)MyInsert(name string,password string){
	stmt.err:=db.Prepare("insert into tablename(name,password) values($1,$2,$3)");
	if err!=nil{
		fmt.Println(err);
	}
	_,err=stmt.Exec(name,password)
	if err!=nil{
	}
}

func (db *sql.db)MyUpdate(name string,findpassword string){
	stmt,err:=db.Prepare("update products set name=$1 where password=$2");
	if err!=nil{}
	_,err=stmt.Exec(name,findpassword);
	if err!=nil{}
}

func (db *sql.db)MyDelete(name string){
	stmt,err:=db.Prepare("delete from tablename where name=$2");
	if err!=nil{}
	_,err:=stmt.Exec(name);
	if err!=nil{}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值