目录
- 安装 SQLite 驱动
- 创建数据库连接
- 执行 SQL 查询
- 插入数据
- 查询数据
- 更新数据
- 删除数据
安装 SQLite 驱动
首先,我们需要在 Go 环境里安装 SQLite 的驱动程序,可以使用以下命令进行安装:
go get github.com/mattn/go-sqlite3
创建数据库连接
接下来,使用 sql.Open()
函数,我们可以连接到数据库。期望的两个参数是驱动名称和数据源名称。 比如:
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() }
执行 SQL 查询
建立连接之后,我们可以使用 db.Exec()
来执行 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) }
插入数据
我们可以通过以下方式向表中插入数据:
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)
查询数据
类似地,我们可以使用 db.Query()
来执行 SQL 查询并获取结果。下面是一个例子:
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) }
更新数据
更新数据的操作和插入数据类似,都是利用 db.Exec()
来执行 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)
删除数据
最后,删除数据操作与插入和更新数据操作类似,同样利用 db.Exec()
来执行 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 数据库的基本步骤,更多关于Go连接操作SQLite数据库的资料请关注其它相关文章!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)