go语言操纵 PostgreSQL 数据库
1. Go 的 PostgreSQL 驱动程序使用go get命令来安装
go get github.com/lib/pq
PostgreSQL 数据库凭据:确保要连接的 PostgreSQL 数据库的地点、端口、用户名和密码
2. 导入须要的包
首先,在 Go 代码中导入所需的包,包罗 PostgreSQL 驱动程序和其他须要的库。
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
3. 创建数据库连接
使用以下代码创建一个与 PostgreSQL 数据库的连接:
db, err := sql.Open("postgres", "user=username password=password dbname=database_name sslmode=disable")
if err != nil {
panic(err.Error())
}
defer db.Close()
确保将user、password、database_name等参数替换为本身的 PostgreSQL 数据库的凭据和名称。
4.实行 CRUD 操纵
现在,我们已经建立了与 PostgreSQL 数据库的连接,让我们继承实行 CRUD 操纵。
1)创建记录
要创建新的记录,使用以下代码:
_, err := db.Exec("INSERT INTO user (username, email) VALUES ($1, $2)", "john_doe", "john@example.com")
if err != nil {
panic(err.Error())
}
2)读取记录
要读取记录,使用以下代码:
rows, err := db.Query("SELECT username, email FROM user")
if err != nil {
panic(err.Error())
}
defer rows.Close()
for rows.Next() {
var username string
var email string
err := rows.Scan(&username, &email)
if err != nil {
panic(err.Error())
}
fmt.Printf("Username: %s, Email: %s\n", username, email)
}
注:rows.Next() 返回true 或 flase,通过返回值判断表中数据进行curd操纵
3)更新记录
要更新记录,使用以下代码:
_, err := db.Exec("UPDATE user SET email = $1 WHERE username = $2", "new_email@example.com", "john_doe")
if err != nil {
panic(err.Error())
}
4)删除记录
要删除记录,使用以下代码:
_, err := db.Exec("DELETE FROM user WHERE username = $1", "john_doe")
if err != nil {
panic(err.Error())
}
5.简单示例
以下是一个简单的示例,演示如何创建、读取、更新和删除用户记录:
package mainimport (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
func main() { db, err := sql.Open("postgres", "user=username password=password dbname=database_name sslmode=disable") if err != nil { panic(err.Error()) } defer db.Close() // 创建记录 _, err = db.Exec("INSERT INTO user (username, email) VALUES ($1, $2)", "john_doe", "john@example.com") if err != nil { panic(err.Error()) } // 读取记录 rows, err := db.Query("SELECT username, email FROM user") if err != nil { panic(err.Error()) } defer rows.Close() for rows.Next() { var username string var email string err := rows.Scan(&username, &email) if err != nil { panic(err.Error()) } fmt.Printf("Username: %s, Email: %s\n", username, email) } // 更新记录 _, err = db.Exec("UPDATE user SET email = $1 WHERE username = $2", "new_email@example.com", "john_doe") if err != nil { panic(err.Error()) } // 删除记录 _, err = db.Exec("DELETE FROM user WHERE username = $1", "john_doe") if err != nil { panic(err.Error()) }}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]