GORM(Go 的 ORM 库)连接数据库,并实现增删改查操作|青训营

78 阅读1分钟

安装

go get -u gorm.io/gorm

数据库连接

微服务一部分有自己的数据库,在自己部分共用一个数据库,需要单独写添加,删除,查找部分

所以定义全局数据库

var DB *gorm.DB

数据库连接在数据库初始化中

func InitDB() { 
    dsn := "username:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local" 
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) 
    if err != nil { panic("failed to connect to database") } 
    DB = db 
}

username:数据库名(一般没有特殊没说明为root)

password:数据库密码(我一般写在配置文件中了)

@tcp():主机端口

dbname:表名

后面一串为日期时间

定义模型

定义你的数据模型,这将映射到数据库表

举例:

type User struct { 
    ID uint 
    Name string 
    Email string 
}

数据库添加

一般需要将增删查改单独写成函数在数据库表定义文件中,然后直接调用就可以了

func CreateUser(name, email string) error { 
    user := &User{Name: name, Email: email} 
    result := DB.Create(user)
    return result.Error 
}

当然这里是直接传入name、email,也可以直接传入一个类型在数据库中保存

通过返回的error判断是否成功保存,再进行下一步操作

数据库查询

func GetUserByID(id uint) (*User, error) { 
    var user User 
    result := DB.First(&user, id) 
    if result.Error != nil { 
    return nil, result.Error
    } 
    return &user, nil 
}

这里查询了数据库中的一个id,First是找到第一个id。

这里定义了一个User对象user,去保存找到的信息并返回

数据库更新

其实只需要更改其中数据就行 主要代码:

var user User result := DB.First(&user, id) 
if result.Error != nil { 
    return result.Error 
} 
user.Name = newName 
result = DB.Save(&user)

记得最后Save一下

数据库删除

func DeleteUser(id uint) error { 
    result := DB.Delete(&User{}, id) 
    return result.Error 
}

ok,数据库就到这儿吧!