美文网首页golang
golang使用sqlite

golang使用sqlite

作者: 依然饭太稀 | 来源:发表于2018-01-05 22:30 被阅读98次

    安装问题

    在import sqlite的时候,golang build 出现以下错误,

    exec: "gcc": executable file not found in %PATH%

    原因是sqlitle3是个cgo库,需要gcd编译c代码

    然后下载安装tdm-gcc即可(windosw版本)下载地址:http://tdm-gcc.tdragon.net/download

    在golang中使用sqlite3

    package main

    import (

    "database/sql"

    "fmt"

    _ "github.com/mattn/go-sqlite3"

    )

    func main() {

    db, err := sql.Open("sqlite3", "./foo.db")

    checkErr(err)

    //插入数据

    stmt, err := db.Prepare("INSERT INTO userinfo(username, departname, created) values(?,?,?)")

    checkErr(err)

    res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09")

    checkErr(err)

    id, err := res.LastInsertId()

    checkErr(err)

    fmt.Println(id)

    //更新数据

    stmt, err = db.Prepare("update userinfo set username=? where uid=?")

    checkErr(err)

    res, err = stmt.Exec("astaxieupdate", id)

    checkErr(err)

    affect, err := res.RowsAffected()

    checkErr(err)

    fmt.Println(affect)

    //查询数据

    rows, err := db.Query("SELECT * FROM userinfo")

    checkErr(err)

    for rows.Next() {

        var uid int

        var username string

        var department string

        var created string

        err = rows.Scan(&uid, &username, &department, &created)

        checkErr(err)

        fmt.Println(uid)

        fmt.Println(username)

        fmt.Println(department)

        fmt.Println(created)

    }

    //删除数据

    stmt, err = db.Prepare("delete from userinfo where uid=?")

    checkErr(err)

    res, err = stmt.Exec(id)

    checkErr(err)

    affect, err = res.RowsAffected()

    checkErr(err)

    fmt.Println(affect)

    db.Close()

    }

    func checkErr(err error) {

    if err != nil {

    panic(err)

    }

    }

    相关文章

      网友评论

        本文标题:golang使用sqlite

        本文链接:https://www.haomeiwen.com/subject/mekenxtx.html