go-zero 使用 gorm,gozero gorm

先附上网址

sql 转 gorm
https://www.printlove.cn/tools/sql2gorm

go-zero 官网
https://go-zero.dev/cn/docs/introduction/

gorm 官网
https://gorm.io/zh_CN/docs/index.html

新建个common,用来存放 gorm初始化代码

// 目录格式
common
├── xgorm
│   └── gorm.go
└── xxx...
// common/xgorm/gorm.go

func NewGorm(dsn string) *gorm.DB {
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		panic(err)
	}
	return db
}

srv 里初始化

// svc/servicecontext.go

type ServiceContext struct {
	Config config.Config
	Gorm   *gorm.DB
}

func NewServiceContext(c config.Config) *ServiceContext {
    dsn := "root:123456@tcp(0.0.0.0:3306)/dbName?charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai"
	return &ServiceContext{
		Config: c,
		Gorm:   xgorm.NewGorm(dsn),
	}
}

使用方法

// 例如:在 logic 文件里使用

l.svcCtx.Gorm.First(&userModel)
package logic

import (
	"context"
	"github.com/gogf/gf/v2/encoding/gbase64"
	"index-srv/service/user/model"

	"index-srv/service/user/cmd/rpc/internal/svc"
	"index-srv/service/user/cmd/rpc/types"

	"github.com/zeromicro/go-zero/core/logx"
)

type GetUserInfoLogic struct {
	ctx    context.Context
	svcCtx *svc.ServiceContext
	logx.Logger
}

func NewGetUserInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserInfoLogic {
	return &GetUserInfoLogic{
		ctx:    ctx,
		svcCtx: svcCtx,
		Logger: logx.WithContext(ctx),
	}
}

func (l *GetUserInfoLogic) GetUserInfo(in *__.GetUserInfoReq) (*__.GetUserInfoRes, error) {
	// todo: add your logic here and delete this line

	// todo 用uid查询用户数据
	var userModel model.User
	first := l.svcCtx.Gorm.Where(&model.User{UId: in.UId}).First(&userModel)
	if first.Error != nil {
		return nil, first.Error
	}
	return &__.GetUserInfoRes{}, nil
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值