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

作者:

文章目录
  • 安装依赖库: go get -u gorm.io/gorm 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 文件,里面存储了表结构和数据。
  • func main() { initDB() // 新增两条笔记 createNote(“Go 学习计划”, “每天刷 1 个实战案例”) createNote(“购物清单”, “牛奶、面包、鸡蛋”) // 查询 getNotes() // 更新 updateNote(1, “每天刷 2 个实战案例”) getNotes() // 删除 deleteNote(2) getNotes() }
  • 首次运行,会生成 notes.db 文件。SQLite 可以用 命令行工具或第三方软件(如 DB Browser for SQLite)  打开查看。 程序日志: 新增笔记成功: {1 Go 学习计划 每天刷 1 个实战案例}新增笔记成功: {2 购物清单 牛奶、面包、鸡蛋}所有笔记: [{1 Go 学习计划 每天刷 1 个实战案例} {2 购物清单 牛奶、面包、鸡蛋}]更新笔记成功, ID: 1所有笔记: [{1 Go 学习计划 每天刷 2 个实战案例} {2 购物清单 牛奶、面包、鸡蛋}]删除笔记成功, ID: 2所有笔记: [{1 Go 学习计划 每天刷 2 个实战案例}]
  • 通过本案例,我们实现了: 使用 GORM + SQLite 搭建 本地存储数据库 自动迁移模型(建表) 实现了 CRUD 操作(增删改查) 数据存储在单个 notes.db 文件中,方便移植与备份 SQLite 非常适合: 桌面应用:比如记事本、数据分析工具 移动应用:本地缓存、用户数据存储 轻量级服务:不需要 MySQL/Postgres 的完整环境 到此这篇关于Go语言使用SQLite实现本地存储的示例详解的文章就介绍到这了,更多相关Go SQLite本地存储内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Golang使用sqlite3数据库实现CURD操作 Golang对sqlite3数据库进行操作实践记录 Go连接并操作SQLite数据库基本步骤 Golang操作sqlite3数据库的详细教程
  • 目录
    • 一、环境准备
    • 二、定义模型
    • 三、实现基本的本地存储操作
      • 1. 新增数据
      • 2. 查询数据
      • 3. 更新数据
      • 4. 删除数据
    • 四、测试本地存储
      • 五、运行效果
        • 六、总结

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

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

          安装依赖库:

          go get -u gorm.io/gorm
          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 文件,里面存储了表结构和数据。

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

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

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

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

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

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

          程序日志:

          新增笔记成功: {1 Go 学习计划 每天刷 1 个实战案例}
          新增笔记成功: {2 购物清单 牛奶、面包、鸡蛋}
          所有笔记: [{1 Go 学习计划 每天刷 1 个实战案例} {2 购物清单 牛奶、面包、鸡蛋}]
          更新笔记成功, ID: 1
          所有笔记: [{1 Go 学习计划 每天刷 2 个实战案例} {2 购物清单 牛奶、面包、鸡蛋}]
          删除笔记成功, ID: 2
          所有笔记: [{1 Go 学习计划 每天刷 2 个实战案例}]

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

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

          SQLite 非常适合:

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

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

          您可能感兴趣的文章:

          • Golang使用sqlite3数据库实现CURD操作
          • Golang对sqlite3数据库进行操作实践记录
          • Go连接并操作SQLite数据库基本步骤
          • Golang操作sqlite3数据库的详细教程

          站内搜索