**注意假设数据表中只有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{}
}
go中使用postgres
最新推荐文章于 2024-04-15 15:33:14 发布