开发者

Go语言使用SQLite实现本地存储的示例详解

目录
  • 一、环境准备
  • 二、定义模型
  • 三、实现基本的本地存储操作
    • 1. 新增数据
    • 2. 查询数据
    • 3. 更新数据
    • 4. 删除数据
  • 四、测试本地存储
    • 五、运行效果
      • 六、总结

        在开发工具类软件、桌面应用或者移动端时,我们经常需要一个轻量级数据库来做 本地存储。相比 mysql、Postgres 等服务型数据库,SandroidQLite 体积小、零配置、单文件存储,非常适合这种场景。

        Go 语言通过 GORM + SQLite 驱动 就能轻松实现。本文将带你一步步用 Go 搭建一个 SQLite 本地存储的示例。

        一、环境准备

        安装依赖库:

        go get -u gorm.io/gorjavascriptm
        go get -u gorm.io/driver/sqlite
        

        二、定义模型

        我们以一个 Note 记事本模型为例:

        package main
        
        import (
            "gorm.io/driver/sqlite"
            "gorm.io/gorm"
            "log"
        )
        
        // Note 记事本模型
        type Note struct {
            ID      uint   `gorm:"primaryKey"`
            Title   string `gorm:"size:100"`
            Content string
        }
        
        var db *gorm.DB
        
        func initDB() {
            var err error
            // 创建/连接 SQLite 文件数据库
            db, err = gorm.Open(sqlite.Open("notes.db"), &gorm.Config{})
            if err != nil {
                log.Fatal("数据库连接失败:", err)
            }
        
            // 自动迁移
            _ = db.AutoMigrate(&Note{})
        }
        

        运行后,会在当前目录下生成一个 notes.db 文件,里面存储了表结构和数据。

        三、实现基本的本地存储操作

        1. 新增数据

        func createNote(title, content string) {
            note := Note{Title: title, Content: content}
            db.Create(&note)
            log.Println("新增笔记成功:", note)
        }
        

        2. 查询数据

        func getNotes() {
            var notes []Note
            db.Find(&notes)
            log.Println("所有笔记:", notes)
        }
        

        3. 更新数据

        func updateNote(id uint, newContent string) {
            db.Model(&Note{}).Where("id = ?", id).Update("content", newContent)
            log.Println("更新笔记成功, ID:", id)
        }
        

        4. 删除数据

        func deleteNote(id uint) {
            db.Delete(&Note{}, id)
            log.Println("删除笔记成功, ID:", id)
        }
        

        四、测试本地存储

        func main() {
            initDB()
        
            // 新增两条笔记
            createNote("Go 学习计划", "每天刷 1 个实战案例")
            createNote("购物清单", "牛奶、面包、鸡蛋")
        
            // 查询android
            getNotes()
        
            // 更新
            updateNote(1, "每天刷 2 个实战案例")
            getNotes()
        
            // 删除
            deleteNote(2)
            getNotes()
        }
        

        五、运行效果

        首次运行,会生成 notes.db 文件。SQLite 可以用 命令行工具或第三方软件(如 DB Browser for SQLite)  打开查看。

        程序日志:

        新增笔记成功: {1 Go 学习计划 每天刷 1 个实战案例}

        新增笔记成功: {2 购物清单 牛奶、面包、鸡蛋}

        js有笔记: [{1 Go 学习计划 每天刷 1 个实战案例} {2 购物清单 牛奶、面包、鸡蛋}]

        更新笔记成功, ID: 1

        所有笔www.devze.com记: [{1 Go 学习计划 每天刷 2 个实战案例} {2 购物清单 牛奶、面包、鸡蛋}]

        删除笔记成功, ID: 2

        所有笔记: [{1 Go 学习计划 每天刷 2 个实战案例}]

        六、总结

        通过本案例,我们实现了:

        • 使用 GORM + SQLite 搭建 本地存储数据库
        • 自动迁移模型(建表)
        • 实现了 CRUD 操作(增删改查)
        • 数据存储在单个 notes.db 文件中,方便移植与备份

        SQLite 非常适合:

        • 桌面应用:比如记事本、数据分析工具
        • 移动应用:本地缓存、用户数据存储
        • 轻量级服务:不需要 MySQL/Postgres 的完整环境

        到此这篇关于Go语言使用SQLite实现本地存储的示例详解的文章就介绍到这了,更多相关Go SQLite本地存储内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

        0

        上一篇:

        下一篇:

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        最新数据库

        数据库排行榜