最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go連接并操作SQLite數(shù)據(jù)庫基本步驟

 更新時間:2024年01月31日 11:33:18   作者:云原生Go?源自開發(fā)者  
在這篇文章中,我們將詳細描述如何在?Go?語言中使用?SQLite?數(shù)據(jù)庫,我們將會從如何在?Go?中安裝和使用?SQLite?驅(qū)動包開始講起,然后逐步介紹如何創(chuàng)建數(shù)據(jù)庫連接,執(zhí)行?SQL?查詢,處理返回的數(shù)據(jù)以及關閉數(shù)據(jù)庫連接

安裝 SQLite 驅(qū)動

首先,我們需要在 Go 環(huán)境里安裝 SQLite 的驅(qū)動程序,可以使用以下命令進行安裝:

go get github.com/mattn/go-sqlite3

創(chuàng)建數(shù)據(jù)庫連接

接下來,使用 sql.Open() 函數(shù),我們可以連接到數(shù)據(jù)庫。期望的兩個參數(shù)是驅(qū)動名稱和數(shù)據(jù)源名稱。 比如:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/mattn/go-sqlite3"
)

func main() {
    db, err := sql.Open("sqlite3", "./test.db")
    if err != nil {
        fmt.Println(err)
    }
    defer db.Close()
}

執(zhí)行 SQL 查詢

建立連接之后,我們可以使用 db.Exec() 來執(zhí)行 SQL 查詢。例如,

stmt, err := db.Prepare("CREATE TABLE IF NOT EXISTS userinfo(username TEXT, departname TEXT, created DATE)")
if err != nil {
    log.Fatalln(err)
}
_, err = stmt.Exec()
if err != nil {
    log.Fatalln(err)
}

插入數(shù)據(jù)

我們可以通過以下方式向表中插入數(shù)據(jù):

stmt, err := db.Prepare("INSERT INTO userinfo(username, departname, created) values(?,?,?)")
if err != nil {
    log.Fatalln(err)
}

res, err := stmt.Exec("astaxie", "tech", "2019-12-09")
if err != nil {
    log.Fatalln(err)
}

id, err := res.LastInsertId()

if err != nil {
    log.Fatalln(err)
}

fmt.Println(id)

查詢數(shù)據(jù)

類似地,我們可以使用 db.Query() 來執(zhí)行 SQL 查詢并獲取結(jié)果。下面是一個例子:

rows, err := db.Query("SELECT * FROM userinfo")
columns, err := rows.Columns()
values := make([]sql.RawBytes, len(columns))
for i, _ := range values {
    values[i] = new(sql.RawBytes)
}
var value string
for rows.Next() {
    err = rows.Scan(values...)
    if err != nil {
        log.Fatalln(err)
    }
    for _, val := range values {
        if val == nil {
            value = "NULL"
        } else {
            value = string(*val)
        }
    }
    fmt.Println(value)
}
if err = rows.Err(); err != nil {
    log.Fatalln(err)
}

更新數(shù)據(jù)

更新數(shù)據(jù)的操作和插入數(shù)據(jù)類似,都是利用 db.Exec() 來執(zhí)行 SQL 語句:

stmt, err := db.Prepare("update userinfo set username=? where uid=?")
if err != nil {

updateRes, err := stmt.Exec("astaxieupdate", lastInsertID)
if err != nil {
    log.Fatalln(err)
}

affect, err := updateRes.RowsAffected()

if err != nil {
    log.Fatalln(err)
}
fmt.Println(affect)

刪除數(shù)據(jù)

最后,刪除數(shù)據(jù)操作與插入和更新數(shù)據(jù)操作類似,同樣利用 db.Exec() 來執(zhí)行 SQL 語句:

stmt, err := db.Prepare("DELETE FROM userinfo WHERE uid=?")
if err != nil {

delRes, err := stmt.Exec(lastInsertID)
if err != nil {
    log.Fatalln(err)
}

affect, err := delRes.RowsAffected()
if err != nil {
    log.Fatalln(err)
}

fmt.Println(affect)

以上就是如何在 Go 語言中操作 SQLite 數(shù)據(jù)庫的基本步驟,更多關于Go連接操作SQLite數(shù)據(jù)庫的資料請關注腳本之家其它相關文章!

相關文章

最新評論

中山市| 年辖:市辖区| SHOW| 南陵县| 民和| 中宁县| 南华县| 咸丰县| 盐边县| 顺平县| 时尚| 盘山县| 苏尼特右旗| 房山区| 紫云| 江源县| 锡林郭勒盟| 大英县| 横峰县| 藁城市| 乐昌市| 宜兰市| 延安市| 庆安县| 明水县| 高密市| 五指山市| 遵化市| 横峰县| 顺平县| 安新县| 汉川市| 襄汾县| 嵊泗县| 新营市| 兰西县| 咸阳市| 丹阳市| 灵川县| 东源县| 新建县|