资源描述:
《golang连接postgresql数据库》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、golang连接postgresql数据库PostgreSQL和MySQL比较,它更加庞大一点,因为它是用来替代Oracle而设计的。所以在企业应用中采用PostgreSQL是一个明智的选择。1,获取数据库驱动gogethttps://github.com/bmizerany/pq2,创建数据库表CREATETABLEuserinfo(uidserialNOTNULL,usernamecharactervarying(100)NOTNULL,departnamecharactervarying(500)NOTNULL,Createddate,CONSTRAIN
2、Tuserinfo_pkeyPRIMARYKEY(uid))WITH(OIDS=FALSE);CREATETABLEuserdeatail(uidinteger,introcharactervarying(100),profilecharactervarying(100))WITH(OIDS=FALSE);3,Go操作数据库表数据相关代码(增删改查)packagemainimport("database/sql""fmt"_"github.com/bmizerany/pq")funcmain(){db,err:=sql.Open("postgres","use
3、r=testpassword=testdbname=testsslmode=disable")checkErr(err)//插入数据stmt,err:=db.Prepare("INSERTINTOuserinfo(username,departname,created)VALUES($1,$2,$3)RETURNINGuid")checkErr(err)res,err:=stmt.Exec("astaxie","研发部门","2012-12-09")checkErr(err)id,err:=res.LastInsertId()checkErr(err)fmt.
4、Println(id)//更新数据stmt,err=db.Prepare("updateuserinfosetusername=$1whereuid=$2")checkErr(err)res,err=stmt.Exec("astaxieupdate",1)checkErr(err)affect,err:=res.RowsAffected()checkErr(err)fmt.Println(affect)//查询数据rows,err:=db.Query("SELECT*FROMuserinfo")checkErr(err)forrows.Next(){varui
5、dintvarusernamestringvardepartmentstringvarcreatedstringerr=rows.Scan(&uid,&username,&department,&created)checkErr(err)fmt.Println(uid)fmt.Println(username)fmt.Println(department)fmt.Println(created)}//删除数据stmt,err=db.Prepare("deletefromuserinfowhereuid=$1")checkErr(err)res,err=stmt
6、.Exec(1)checkErr(err)affect,err=res.RowsAffected()checkErr(err)fmt.Println(affect)db.Close()}funccheckErr(errerror){iferr!=nil{panic(err)}}