gorm:gorm相关代码; sql:主要是sql文件,下面可以进一步分组; sqlc:带缓存的数据库操作代码; sqlx:无缓存的数据库操作代码; 相关命令 参考:goctl model mysql 指令 goctl model mysql 指令用于生成基于 MySQL 的 model 代码,支持生成带缓存和不带缓存的代码。 MySQL 代码生成支持从 sql 文件,数据库连接两...
3.在 svcContext 加入 redisClient 4.业务逻辑处理中加入 redis 作为缓存 完成以上,你就完成了通过框架内置的 redis 接口的使用。 定义你的 redis 结构体 internal/config/config.go typeConfigstruct{ zrpc.RpcServerConf } go-zero/zrpc/config.go // A RpcServerConf is a rpc server config. typeRpcServe...
在GORM 中,可以使用 Raw 方法来执行原生 SQL 查询。Raw 方法接受一个 SQL 查询字符串和可选的参数列表,并返回一个 *gorm.DB 对象,可以使用该对象进行进一步的查询操作。 下面是一个使用 Raw 方法执行原生 SQL 查询的示例: import "gorm.io/gorm" // ... var users []User result := db.Raw("SELECT *...
3.1.2、sqlc 带缓存的sql语句 3.1.3、sqlx 直接执行(exec) 4、stringx 二、rest部分 三、rpc部分 框架: 1、框架的作用就是简化开发。其中之一就是已经有很多轮子。如:生成n位随机字符串。如:封装redis使能兼容集群和单node 2、读懂xxxConf就读懂了框架结构 rest配置:(很大,框架无非rest和rpc两部分) 3、in...
重点来了:golang中使用的是 github.com/go-sql-driver/mysql 驱动,将连接 mysql的dsn(因为我这使用的是gorm,所以dsn可能跟原生的格式不太一样,不过没关系, 只需要关注 charset 和collation 就行了) root:password@/name?parseTime=True&loc=Local&charset=utf8 修改为:root:password@/name?parseTime=True&loc...
这些自研组件满足 CRDU 的操作绰绰有余,但是与 gorm、gin 等专攻某一方向的开源项目相比还是有非常大的差距的。 所以随着公司业务发展需求越来越五花八门,当前的主要矛盾从“快速开发”变成“精细化开发”时,会发现该框架有这样或那样的不足。这种情况下就需要提 RP 或自己 fork 一份魔改了。个人觉得这种情况比 ...
go-zero提供的代码⽣成器⾥⾯,没有提供orm框架操作,但是提供了遍历的缓存操作。但是gorm框架的话,没有⽐较好的缓存插件,虽然有⼀个gcache,但不⽀持gorm2.0版本。所以我打算把这两个结合起来。在gorm官⽅⽂档中提到了⼀个接⼝,可以获取到⽣成的sql语句。所以可以利⽤gorm当作⼀个sql语句...
gozero中使用缓存Cache模块。使用方法: monitor\rpc\status\internal\svc路径下的servicecontext.go中,增加Cache字段,并在NewServiceContext中完成初始化: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 package svc import "monitor/shared" import "monitor/rpc/status/internal/config" //手动代码 import "moni...
作为服务,肯定要和数据库交互的,所以在 go-zero 框架里集成 数据库 的操作是必不可少的,今天看看 go-zero 的 rpc 应用如何集成 gorm 框架。 总体的思路分这几步: 定义你的配置项结构体 定义你的配置 添加到 svcContext 实现你的模型 具体业务逻辑的应用 ...
ORM支持 不支持(需集成第三方库) 内置ORM 内置ORM,支持多种数据库 内置ORM(gorm、mongo-go-driver),支持通过自定义模板生成更多类型的orm代码 API生成 支持API自动生成 支持API自动生成 支持API自动生成 支持API自动生成,支持解析sql、protobuf、json生成web或gRPC服务CRUD API或自定义API ...