GoZero微服务个人探究之路(八)-[mysql数据库]如何拓展由goctl生成的model代码里的方法

发布时间:2024年01月22日

前言

goctl生成的方法只有四个:

insert,update,findone,delete,

事实上很多时候这是不够用的,同时生成的这四个方法也很简单,业务逻辑一复杂就做不了了,需要我们自己去实现自己想要的方法

如何实现

goctl生成的model代码有2个:

xxxxxmodel_gen.go

xxxxxmodel.go

打开后缀gen的go文件,我们发现上面有提示,不要编辑这个文件,而另外一个go文件没有这个提示

事实上gen后缀的go文件是四个生成的方法的实现,我们只需要对model后缀代码进行修改


这里我们就增加一个findAll的方法,获取表内全部数据

流程如下:

定义customxxxxxmodel接口,在接口内新增自定义方法FindAll

然后去实现customxxxxModel添加的新方法

其实我们可以发现,goctl的逻辑是defaultxxxmodel包含了生成的四个方法,而customxxxmodel是包含defaultxxxmodel的,我们只需要为custom增加方法并实现就可以不影响goctl的添加我们自己的业务逻辑代码了

后面该怎么用

  1. 在serviceCtx结构体添加对应model,并在NewServiceContext里面正确返回实例
  2. 在logic代码调用svcCtx的实例我们自定义的方法

文章来源:https://blog.csdn.net/m0_63629756/article/details/135759417
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。