马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1. Go 的 PostgreSQL 驱动程序
使用go get命令来安装
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企服之家,中国第一个企服评测及商务社交产业平台。 |