go微服务框架Kratos笔记(三)引入GORM框架

2022-12-19,,,,

介绍

GORM是一个使用Go语言编写的ORM框架。中文文档齐全,对开发者友好,支持主流数据库。

GORM官方文档

安装

go get -u github.com/jinzhu/gorm

kratos引入GORM框架

在kratos生成的目录internal/data中找到data.go文件,

修改NewData方法并封装数据库客户端

// Data .
type Data struct {
db *gorm.DB
} // NewData .
//集成gorm框架
func NewData(logger log.Logger) (*Data, func(), error) {
// mysql数据库连接
db, err := gorm.Open(mysql.Open(user:password@tcp(xxx.xxx.x.xxx:xxxx)/database_name?charset=utf8&parseTime=True&loc=Local), &gorm.Config{
Logger: gormlog.Default.LogMode(gormlog.Info), //打印所有执行的sql语句
NamingStrategy: schema.NamingStrategy{
SingularTable: true, // 使用单数表名
},
})
if err != nil {
return nil, nil, err
}
d := &Data{
db: db,
}
logHelp := log.NewHelper(logger)
return d, func() {
logHelp.Info("message", "closing the data resources")
}, nil
}

使用方式

type greeterRepo struct {
data *Data
log *log.Helper
} // NewGreeterRepo .
func NewGreeterRepo(data *Data, logger log.Logger) biz.GreeterRepo {
return &greeterRepo{
data: data,
log: log.NewHelper(logger),
}
} func (r *greeterRepo) CreateGreeter(ctx context.Context, g *biz.Greeter) error {
//调用gorm框架即可
r.data.db.Raw("SELECT id, name, age FROM users WHERE name = ?", 3)
return nil
}

如有错误请留言反馈

go微服务框架Kratos笔记(三)引入GORM框架的相关教程结束。

《go微服务框架Kratos笔记(三)引入GORM框架.doc》

下载本文的Word格式文档,以方便收藏与打印。