Go 语言的 SQLite 数据库操作,算是轻量型项目里比较常见的搭配了。SQLite本身就是个不用装服务的嵌入式数据库,用起来简单,部署也方便,挺适合开发些小工具或者嵌入式服务的。
mattn/go-sqlite3这个库用得比较多,社区活跃,兼容性也不错。只要你本地装了 C 编译环境,直接go get github.com/mattn/go-sqlite3
就能用,连数据库连接都直观:
db, err := sql.Open("sqlite3", "./example.db")
文件路径给了,库就自动创建数据库文件,连建表都能直接写 SQL 语句:
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL
)
插入数据也支持预编译语句,用stmt.Exec()
的时候传"张三"
、"zhangsan@example.com"
进去,安全还高效,适合有用户输入的场景。
要批量写数据?直接用事务tx.Begin()
加tx.Exec()
,tx.Commit()
,中间出错还能回滚,挺靠谱。
还有一点值得一提,gosqlite-74691fb6f837这个压缩包看起来是源码版本,想研究底层或者做一些定制优化,看看它挺有的。
如果你之前没怎么接触 SQLite,下面这几篇文章也蛮适合补课的:
嗯,,如果你用 Go 写服务又不想折腾数据库部署,SQLite + go-sqlite3这套组合确实还挺香的。想进一步研究底层实现?直接翻源码也方便。