apaas.dev
29 October 2022
SEO Title
PostgreSQL与MySQL一样受欢迎,并提供类似的功能。它还提供了一些现成的最佳技术。在这篇文章中,我们将讨论GoLang中的PostgreSQL,并在Go中创建简单的CRUD操作。
使用Go连接到PostgreSQL数据库
这是检查我们是否成功连接的代码。现在,在检查了是否可以继续向表中插入数据之后。
我们需要使用go包管理器安装pq包:
|
|
packagemainimport("database/sql""fmt"_"github.com/lib/pq")const(host ="localhost"port =5432user ="postgres"password ="<password>"dbname ="<dbname>")func main() {// connection stringpsqlconn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable", host, port, user, password, dbname)// open databasedb, err := sql.Open("postgres", psqlconn)CheckError(err)// close databasedefer db.Close()// check dberr = db.Ping()CheckError(err)fmt.Println("Connected!")}func CheckError(err error) {iferr != nil {panic(err)}}
1.将数据插入表格
在这里,首先,我们创建一个简单的表,其中只有两列名称和滚动。现在,要插入或更新数据,我们需要使用预先准备好的语句。这就是数据库操作安全的原因。
packagemainimport("database/sql""fmt"_"github.com/lib/pq")const(host ="localhost"port =5432user ="postgres"password ="rusho1234"dbname ="MyDB")func main() {psqlconn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable", host, port, user, password, dbname)db, err := sql.Open("postgres", psqlconn)CheckError(err)defer db.Close()// insert// hardcodedinsertStmt := `insert into"Students"("Name","Roll") values('John',1)`_, e := db.Exec(insertStmt)CheckError(e)// dynamicinsertDynStmt := `insert into"Students"("Name","Roll") values($1, $2)`_, e = db.Exec(insertDynStmt,"Jane",2)CheckError(e)}func CheckError(err error) {iferr != nil {panic(err)}}
2.更新表中的数据
更新数据需要执行更新语句。以下是准备好的声明:
// updateupdateStmt := `update"Students"set"Name"=$1,"Roll"=$2where"id"=$3`_, e := db.Exec(updateStmt,"Mary",3,2)CheckError(e)
3.从表中删除数据
删除数据也像更新一样简单:
// DeletedeleteStmt := `delete from"Students"where id=$1`_, e := db.Exec(deleteStmt,1)CheckError(e)
4.通过select获取数据
现在,我们将从表中查询数据。我们只需像以前的操作一样执行所需的操作。然后我们对返回的每一行进行迭代并检查数据。下面是我们的方法。
rows, err := db.Query(`SELECT"Name","Roll"FROM"Students"`)CheckError(err)defer rows.Close()forrows.Next() {var name stringvar rollinterr = rows.Scan(&name, &roll)CheckError(err)fmt.Println(name, roll)}CheckError(err)
如图所示,数据完全返回。
这就是我们如何在GoLang中使用PostgreSQL创建CRUD操作
- 登录 发表评论