如果想在嵌入式设备上实现简单的设备管理功能,需要数据库和服务后端程序。服务端程序,我更倾向使用golang来实现。
安装sqlite3,使用ubuntu环境,可以直接用apt install安装程序
apt install sqlite3
然后下载golang编译环境。这里我们直接去官网下载就行。

在官网复制红色框这个链接地址,然后我们在终端里执行命令下载
wget https://golang.google.cn/dl/go1.25.0.linux-arm64.tar.gz
下载完毕后,我们需要把编译环境解压缩到指定目录里。我习惯在用户目录里创建一个.bin目录,然后放进去。
mkdir $HOME/.bin
cd $HOME/.bin
tar xf $HOME/go1.25.0.linux-arm64.tar.gz
解压缩结束后,需要在环境变量里添加golang的bin目录,以及GOPATH设置(用于安装golang的模块和全局命令程序)。
我们可以在.bashrc里配置好。
export MYBIN=$HOME/.bin
export GOPATH=$HOME/go
export PATH=$MYBIN/go/bin:$PATH
export PATH=$GOPATH/bin:$PATH
另外,golang的国内源配置也要记得加上
go env -w GO111MODULE=onexport GOPROXY=https://goproxy.cn,direct
然后执行source ~/.bashrc ,更新环境变量配置就可以了
这时候就可以直接使用go命令了。先安装gorm和sqlite的依赖库
go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite
然后按照官方demo改一下
package main
import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type Product struct {
gorm.Model
Code string
Price uint
}
func main() {
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
db.AutoMigrate(&Product{})
db.Create(&Product{Code: "F42", Price: 100})
var product Product
db.First(&product, 1)
db.First(&product, "code = ?", "S42")
db.Model(&product).Update("Price", 200)
db.Model(&product).Updates(Product{Price: 200, Code: "D42"})
db.Model(&product).Updates(map[string]interface{}{"Price": 200, "Code": "F42"})
db.Delete(&product, 1)
}
接下来运行一下go run simpleDB.go,首次运行这个程序不会有报错,我们使用sqlite3看一下数据库实际的数据内容。
可以看到,代码正常运行了,数据也是对的,删除时间是GORM生成的,用于标记这个数据项已经被删除了。

也可以把数据表的具体栏目给显示一下
