請先在命令提示字元中安裝 Go 的 PostgreSQL 驅動。
最新資訊可以參考:https://github.com/lib/pq
命令提示字元中輸入:go get github.com/lib/pq
接著再輸入:go install github.com/lib/pq
如果沒有出現任何錯誤訊息的話,恭喜!! 安裝驅動完畢 !!
我先在 PostgerSQL 建立一個 test 資料庫,使用者名稱是 postgres,密碼是 a
接著,我在 test 資料庫中新增一個名稱為 my 的資料表,裡面分別有 use 與 pw 欄位。
他們看起來像這樣:
使用者名稱:postgres
密碼:a
資料庫:test
my <表> | |
use <欄1> | pw <欄2> |
程式碼:
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
func main() {
// 初始化資料庫:
db, err := sql.Open("postgres", "user=postgres password=a dbname=test sslmode=disable")
defer db.Close()
checkErr(err)
// 新增資料列:
stmt, err := db.Prepare("INSERT INTO my(use,pw) VALUES($1,$2);")
checkErr(err)
res, err = stmt.Exec("apple", "iphone哀鳳")
checkErr(err)
println("已新增資料列。\n")
// 查詢資料列:
println("查詢資料列:")
rows, err := db.Query("SELECT * FROM my")
checkErr(err)
var use, pw string
for rows.Next() {
err = rows.Scan(&use, &pw)
checkErr(err)
fmt.Println("\t", use, pw)
}
// 更改資料列:
println("\n更改資料列中...")
stmt, err = db.Prepare("UPDATE my SET pw=$1 WHERE use=$2")
checkErr(err)
res, err = stmt.Exec("ipad2", "apple")
checkErr(err)
affect, err := res.RowsAffected()
checkErr(err)
println("已更改", affect, "個資料列。\n")
// 查詢資料列:
println("查詢資料列:")
rows, err = db.Query("SELECT * FROM my")
checkErr(err)
for rows.Next() {
err = rows.Scan(&use, &pw)
checkErr(err)
fmt.Println("\t", use, pw)
}
// 删除資料列:
stmt, err = db.Prepare("DELETE FROM my WHERE use=$1")
checkErr(err)
res, err = stmt.Exec("apple")
checkErr(err)
affect, err = res.RowsAffected()
checkErr(err)
println("\n已刪除", affect, "個資料列。\n")
// 查詢資料列:
println("查詢資料列:")
rows, err = db.Query("SELECT * FROM my")
checkErr(err)
if(!rows.Next()){
print("資料列是空的 !!")
}
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}
輸出結果:
已新增資料列。
查詢資料列:
apple iphone哀鳳
更改資料列中...
已更改 1 個資料列。
查詢資料列:
apple ipad2
已刪除 1 個資料列。
查詢資料列:
資料列是空的 !!
留言列表