当前位置: 首页 > news >正文

SQLite 可以随可执行文件部署在用户机器吗

答案是:可以的。

sqlite 本身就是嵌入式的SQL数据库引擎,不需要单独的服务器进程。sqlite 直接读取和写入普通磁盘文件,sqlite 的整个数据库(所有表、索引、触发器等)都包含在单个磁盘文件中。所以 sqlite 很适合开发本地应用程序,可以将数据库嵌入到可执行文件中,运行可执行文件即可在用户计算机中生成 sqlite 数据库文件供应用程序使用。

下面提供 Go 语言代码作为实验示例:

先使用 go get 安装 go-sqlite3 (sqlite 的 Go 驱动),再在 Go 模块中使用 go build 生成可执行文件,当运行可执行文件时,便会在可执行文件所在文件夹生成 sqlite 数据库文件 .db

ps:此处为方便管理 .db 文件,所以将其生成路径定位在可执行文件所在文件夹。但在实际生产中,应该放置于用户不常接触到的文件夹中,如 MacOS 的 ~/Library/Application Support/ 或 Windows 的 AppData 目录。

package mainimport ("database/sql""fmt"_ "github.com/mattn/go-sqlite3"
)func main() {db, err := sql.Open("sqlite3", "./example.db")if err != nil {fmt.Println("Error opening database: ", err)return}defer db.Close()// 创建表sqlStmt := `CREATE TABLE IF NOT EXISTS userinfo (id INTEGER PRIMARY KEY AUTOINCREMENT,username TEXT NOT NULL,departname TEXT,created DATE);`_, err = db.Exec(sqlStmt)if err != nil {fmt.Printf("%q: %s\n", err, sqlStmt)return}// 插入数据_, err = db.Exec("INSERT INTO userinfo(username, departname, created) VALUES(?,?,?)", "john", "IT", "2023-04-01")if err != nil {fmt.Println("Error inserting data: ", err)return}// 查询数据rows, err := db.Query("SELECT id, username FROM userinfo")if err != nil {fmt.Println("Error querying data: ", err)return}defer rows.Close()for rows.Next() {var id intvar username stringerr = rows.Scan(&id, &username)if err != nil {fmt.Println("Error reading row: ", err)continue}fmt.Println("ID:", id, "Username:", username)}
}
http://www.lryc.cn/news/383978.html

相关文章:

  • 大模型的开源不同于传统的开源软件
  • 基于PHP+MySql的留言管理系统的设计与实现
  • 单目标应用:基于吸血水蛭优化器(Blood-Sucking Leech Optimizer,BSLO)的微电网优化(MATLAB代码)
  • 嵌入式工程师从0开始,到底该学什么,怎么学
  • Redis-集群-环境搭建
  • ITSG、COST-G、Tongji和WHU Level-2数据产品读取绘图(Matlab)
  • linux(ubuntucentos)-安装libreoffice
  • 上海市计算机学会竞赛平台2023年9月月赛丙组点对之和(一)
  • maven-jar-plugin在springboot中打包成普通引用的jar
  • 小型海外仓布局策略:高效利用有限空间,标准化3F流程
  • 【高考志愿】电气工程
  • 贪吃蛇项目:GameRun与GameEnd部分:游戏的主体运行与善后部分
  • mysql索引、事务以及存储引擎
  • idea添加文档注释
  • python函数练习
  • 基于PHP的奶茶商城系统
  • 物联网“此用户无权修改接入点名称设置”解决方案
  • 网工常见面试题
  • SQL实现UUIDv7
  • 2024期权交易佣金手续费最低是多少?期权交易有哪些成本?
  • 合合信息智能文档抽取:赋能不良资产管理行业的数字化转型
  • 【别再用Excel了!】这款免费可视化工具能帮你轻松提升效率
  • python holidays获取中国节日
  • Jenkins流水线发布,一篇就解决你的所有疑惑
  • 安装zabbix时报错Could not resolve host: mirrors.huaweicloud.com;Unknown error解决办法
  • 【Linux】CentOS 7 安装配置 postfix 邮件服务器随笔
  • vue3 使用JsMind的方法,以及引入提示报错,无法找到模块“jsmind”的声明文件
  • 狗都能看懂的DBSCAN算法详解
  • 运维岗高危操作
  • 【ajax基础02】URL详解