跳转到主要内容

PostgreSQL与MySQL一样受欢迎,并提供类似的功能。它还提供了一些现成的最佳技术。在这篇文章中,我们将讨论GoLang中的PostgreSQL,并在Go中创建简单的CRUD操作。

使用Go连接到PostgreSQL数据库

这是检查我们是否成功连接的代码。现在,在检查了是否可以继续向表中插入数据之后。

我们需要使用go包管理器安装pq包:

go get github.com/lib/pq

package main

import (

    "database/sql"

    "fmt"

    _ "github.com/lib/pq"

)

const (

    host     = "localhost"
    port     = 5432
    user     = "postgres"
    password = "<password>"
    dbname   = "<dbname>"
)


func main() {
    // connection string
    psqlconn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable", host, port, user, password, dbname)
         
     // open database

    db, err := sql.Open("postgres", psqlconn)

    CheckError(err)   

     // close database

    defer db.Close()


        // check db

    err = db.Ping()

    CheckError(err)


    fmt.Println("Connected!")

}

func CheckError(err error) {

    if err != nil {

        panic(err)
    }

}

1.将数据插入表格

在这里,首先,我们创建一个简单的表,其中只有两列名称和滚动。现在,要插入或更新数据,我们需要使用预先准备好的语句。这就是数据库操作安全的原因。

package main
import (

    "database/sql"

    "fmt"

    _ "github.com/lib/pq"

)
const (

    host     = "localhost"
    port     = 5432
    user     = "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

    // hardcoded

    insertStmt := `insert into "Students"("Name", "Roll") values('John', 1)`

    _, e := db.Exec(insertStmt)

    CheckError(e)

    // dynamic

    insertDynStmt := `insert into "Students"("Name", "Roll") values($1, $2)`
    _, e = db.Exec(insertDynStmt, "Jane", 2)
    CheckError(e)
}

func CheckError(err error) {

    if err != nil {

        panic(err)

    }

}

2.更新表中的数据

更新数据需要执行更新语句。以下是准备好的声明:

// update

updateStmt := `update "Students" set "Name"=$1, "Roll"=$2 where "id"=$3`

_, e := db.Exec(updateStmt, "Mary", 3, 2)

CheckError(e)

3.从表中删除数据

删除数据也像更新一样简单:

// Delete

deleteStmt := `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()

for rows.Next() {

    var name string

    var roll int

    err = rows.Scan(&name, &roll)

    CheckError(err)

    fmt.Println(name, roll)
}

CheckError(err)

如图所示,数据完全返回。

这就是我们如何在GoLang中使用PostgreSQL创建CRUD操作

文章链接