Golang 增删改查

使用到的是postgresql数据库进行示范

main.go

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/lib/pq"
)

func main() {
    //连接数据库
    db, err := sql.Open("postgres", "host=localhost port=5432 user=postgres  password=123 dbname=test sslmode=disable")
    checkErr(err)
    defer db.Close()
    fmt.Println(db)
    //插入数据
    //    stmt, err := db.Prepare("insert into public.user(id,name) values($1,$2)")
    //    checkErr(err)
    //    d,err := stmt.Exec("16", "ft16")
    //    fmt.Println(d,err)

    //更新数据
    //    stmt, err := db.Prepare("update public.user set name=$1 where id=$2")
    //    checkErr(err)
    //
    //    a,err:=stmt.Exec("ftx2", 3)
    //    checkErr(err)
    //
    //    affect, err := a.RowsAffected()
    //    checkErr(err)
    //
    //    fmt.Println(affect)
    //
    //    //查询数据
    //    rows, err := db.Query("select * from public.user")
    //    checkErr(err)
    //
    //    for rows.Next() {
    //        var id int
    //        var name string
    //        err = rows.Scan(&id, &name)
    //        checkErr(err)
    //        fmt.Println(id)
    //        fmt.Println(name)
    //    }
    //
    //    //删除数据
    //    stmt, err := db.Prepare("delete from public.user where id=$1")
    //    checkErr(err)
    //
    //    res, err := stmt.Exec(1)
    //    checkErr(err)
    //
    //    affect, err := res.RowsAffected()
    //    checkErr(err)
    //
    //    fmt.Println(affect)

}

func checkErr(err error) {
    if err != nil {
        panic(err)
    }
}

值得注意的是,1.”github.com/lib/pq”该驱动用命令行go get 获得
2.增删改查分别执行,同时执行会出现stmt和err重复定义
3.db.Exec()和stmt.Exec()效果相同,但是后者效率更快,执行时间更短

你可能感兴趣的:(go)