安装
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,数据库就到这儿吧!