【笔记】Go语言通过Gorm操作Sqlite数据库

前言

Go语言通过Gorm操作Sqlite数据库

下载依赖

1
2
go get gorm.io/gorm
go get gorm.io/driver/sqlite

获取数据库连接

<filename>.db:数据库文件

1
2
3
4
5
6
7
8
9
10
package main

import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)

func main() {
db, err := gorm.Open(sqlite.Open("<filename>.db"), &gorm.Config{})
}

创建实体

  • 结构体名
    • 如果结构体名是User,那么映射的数据表名默认为users
      • 默认情况下数据表名默认为复数
    • 如果结构体名是UserTable,那么映射的数据表名默认为user_table
  • 字段名
    • 如果字段名是ID,那么映射的数据表字段名默认为id
    • 如果字段名是UserID,那么映射的数据表名默认为user_id

TableName():重新映射表名

1
2
3
4
5
6
7
8
type User struct {
gorm.Model
Username string
}

func (User) TableName() string {
return "user"
}

自动迁移

1
db.AutoMigrate(&User{})

新增

1
2
3
user := User{Username: ""}

db.Create(&user)

删除

1
2
3
user := User{}

db.Delete(&user, 1)

修改

更新

修改单个字段

1
2
3
user := User{}

db.Model(&user).Update("Username", "")

更新所有字段

1
2
3
user := User{Username: ""}

db.Model(&user).Updates(&user)

查询

1
2
3
var user User

db.Find(&user)

完成

参考文献

知乎——Web后端技术