Go语言中SQLite3数据库使用详解
创作时间:
作者:
@小白创作中心
Go语言中SQLite3数据库使用详解
引用
CSDN
1.
https://blog.csdn.net/qq_14829643/article/details/136954802
SQLite是一个广泛使用的嵌入式SQL数据库引擎,以其轻量级和自足性而闻名。Go语言,以其简洁的语法和强大的性能而受到开发者的青睐,通过database/sql包和专用的SQLite3驱动程序提供了对SQLite数据库的支持。本文旨在指导如何在Go语言中使用SQLite3,包括设置环境、连接数据库、执行SQL语句、处理查询结果等方面。
环境准备和安装
在开始之前,确保您的系统已安装Go环境。接着,您需要安装SQLite3的Go语言驱动。最流行的驱动是mattn/go-sqlite3,可以通过如下命令安装:
go get -u github.com/mattn/go-sqlite3
请注意,该驱动使用cgo,因此需要C编译器环境。
打开数据库连接
首先,导入必要的包:
import (
"database/sql"
_ "github.com/mattn/go-sqlite3"
)
然后,可以使用sql.Open函数打开一个SQLite数据库文件:
db, err := sql.Open("sqlite3", "your_database.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
这里的your_database.db是数据库文件的路径,如果文件不存在,SQLite将会创建一个新文件。
创建表
使用Exec方法执行SQL语句创建一个新表:
createTableSQL := `CREATE TABLE IF NOT EXISTS projects (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" TEXT,
"description" TEXT
);`
_, err = db.Exec(createTableSQL)
if err != nil {
log.Fatal(err)
}
插入数据
插入数据到表中,可以使用预处理语句:
stmt, err := db.Prepare("INSERT INTO projects(name, description) VALUES(?, ?)")
if err != nil {
log.Fatal(err)
}
defer stmt.Close()
_, err = stmt.Exec("My Project", "This is a sample project")
if err != nil {
log.Fatal(err)
}
查询数据
查询表中的数据并处理结果:
rows, err := db.Query("SELECT id, name, description FROM projects")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id int
var name, description string
err = rows.Scan(&id, &name, &description)
if err != nil {
log.Fatal(err)
}
fmt.Println(id, name, description)
}
完整代码
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/mattn/go-sqlite3" // 导入SQLite3驱动
)
func main() {
// 打开数据库连接
db, err := sql.Open("sqlite3", "./test.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 创建表
createTableSQL := `CREATE TABLE IF NOT EXISTS projects (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" TEXT,
"description" TEXT
);`
_, err = db.Exec(createTableSQL)
if err != nil {
log.Fatal(err)
}
// 插入数据
stmt, err := db.Prepare("INSERT INTO projects(name, description) VALUES(?, ?)")
if err != nil {
log.Fatal(err)
}
defer stmt.Close()
_, err = stmt.Exec("My Project", "This is a sample project")
if err != nil {
log.Fatal(err)
}
// 查询数据
rows, err := db.Query("SELECT id, name, description FROM projects")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id int
var name, description string
err = rows.Scan(&id, &name, &description)
if err != nil {
log.Fatal(err)
}
fmt.Println(id, name, description)
}
// 检查查询过程中可能出现的错误
err = rows.Err()
if err != nil {
log.Fatal(err)
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
执行效果
总结
在Go语言中使用SQLite3,可以为您的应用提供轻量级且高效的数据存储解决方案。通过上述步骤,您可以开始在Go项目中集成和操作SQLite数据库,执行数据的增删改查操作。
在实际开发中,除了基本的数据库操作外,还需要考虑错误处理、事务控制、连接池管理等高级功能的实现,以确保应用的健壮性和性能。希望本文能为您在Go语言中使用SQLite3提供一个良好的起点。
热门推荐
青椒肉丝制作指南:从新手到大厨的百搭家常菜
青椒肉丝这样做最好吃:专业厨师的烹饪技巧详解
职场生存法则:在“笨拙”与“灵巧”之间找到平衡
中老年人电脑使用指南:轻松调整系统设置
拆卸小米车载充电器:工具准备与安全要点
每天对着电脑十个小时的工作和学习,怎么保护眼睛呢?
目前行业硝态氮的处理方式浅谈
目标引领人才驱动:企业高效能团队建设指南
小茴香:这味中药能治胃痛,但这些人不能吃
小茴香:餐桌上的调味品,养生保健的好帮手
性能提升7000倍,GPU成AI训练主流选择
CUDA编程让GPU深度学习更高效
1862年诞生的麻婆豆腐:川菜名片的全球之旅
从10人到45人,尼泊尔木斯塘社区守护藏传佛教文化遗产
元旦去西藏:布达拉宫、珠峰大本营5-7天行程攻略
手撕包菜走红:低卡高营养,传统家常菜玩出新花样
包菜营养价值超番茄三倍,手撕包菜这样做最健康
中山四大骑行路线:江景落日、千年古村、彩虹绿道各具特色
干煸还是干锅?手撕包菜两种做法全解析
猪油炒手撕包菜更香,但要适量
选对食材配对时令,手撕包菜也能很新潮
深中通道开通后,中山这3个景点最值得打卡
深圳到中山只需半小时,周末两日游这样玩
深中通道开通,孙中山故居纪念馆游览攻略
中山举办首届岐澳古道徒步活动,近千米人寻访香山“丝绸之路”
旅途出现晕车、晕船等不适怎么办?教你几招应对!
一文读懂企业外汇风险管理:工具、策略与案例
江苏省人民医院专家详解蜜远志副作用:过敏反应居多
蜜远志:传统中药改善记忆与舒缓神经,但需警惕副作用
松赞干布建大昭寺供奉文成公主佛像,见证汉藏千年友谊