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

news2024/9/25 11:20: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的实例我们自定义的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1403683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

esp32-idf eclipse 分区表(partition table / NVS)的读写demo

前言: 分区表(Partition Table)和 NVS(Non-Volatile Storage)是 ESP-IDF 中用于存储数据的两种不同机制。 分区表(Partition Table): 分区表定义了将 Flash 存储器划分为不同逻辑分…

Hugo使用且部署GitHubPages

hugo的使用 20201121 Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。 安装Hugo 0.windows安装(releases) 下载地址:https://github.com/spf13/hugo/releases。 配置环境变量 验证测试是否安装成功 hugo help1. 二进制安装&#xf…

提升认知,推荐15个面向开发者的中文播客

前言 对于科技从业者而言,无论是自学成才的程序员,还是行业资深人士,终身学习是很有必要的,尤其是在这样一个技术快速迭代更新的时代。 作为一个摆脱了时间和空间限制的资讯分享平台,播客(Podcast&#x…

【算法练习Day51】柱状图中最大的矩形

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 柱状图中最大的矩形思路动态…

Android学习之路(22) 从模块化到组件化

从模块化到组件化 一、从模块化到组件化 Android 应用项目 , 都存在一个应用模块 ( Application Module ) , 在 build.gradle 构建脚本中 , 第一个插件配置 com.android.application , 表明 该 Module 编译打包后的输出是 APK 安装包 ; 该项目可以直接运行 ; plugins {id co…

第14章_集合与数据结构拓展练习(前序、中序、后序遍历,线性结构,单向链表构建,单向链表及其反转,字符串压缩)

文章目录 第14章_集合与数据结构拓展练习选择填空题1、前序、中序、后序遍历2、线性结构3、其它 编程题4、单向链表构建5、单向链表及其反转6、字符串压缩 第14章_集合与数据结构拓展练习 选择填空题 1、前序、中序、后序遍历 分析: 完全二叉树: 叶结点…

灰度图像的自动阈值分割

第一种:Otsu (大津法) 一、基于cv2的API调用 1、代码实现 直接给出相关代码: import cv2 import matplotlib.pylab as pltpath r"D:\Desktop\00aa\1.png" img cv2.imread(path, 0)def main2():ret, thresh1 cv2.…

赢领时代,蓝带启航,蓝带啤酒2024年会圆满成功,共绘宏伟蓝图

2024年1月14日,泰国普吉岛,由蓝带啤酒股份公司主办的“涅槃新蓝带、赢领新未来”2024年核心团队年会在普吉岛艾美海滩度假酒店盛大举行,来自全国各地的蓝带营销菁英、核心团队以及合伙人等九十多位代表汇聚一堂,共同见证并分享公司…

[python题解13】只出现一个数字。给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

1. 题目:只出现一个数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 输入样例: [2,2,1] 输出样例: 1 2. 使用set去重然后相减即可得到答案;使用异或也可 3. 源…

Next-GPT: Any-to-Any Multimodal LLM

Next-GPT: Any-to-Any Multimodal LLM 最近在调研一些多模态大模型相关的论文,发现Arxiv上出的论文根本看不过来,遂决定开辟一个新坑《一页PPT说清一篇论文》。自己在读论文的过程中会用一页PPT梳理其脉络和重点信息,旨在帮助自己和读者快速了…

python批量复制图片到execl并指定图片的大小

工作需要需要复制批量图片到execl,并指定大小,这里简单实现一下,使用xlwings库来实现总体来说是比较简单的,这里简单记录一下 import xlwings as xw import os# 创建一个可见的Excel应用程序对象 app xw.App(visibleTrue)# 打开…

【webrtc】neteq测试工程

设置git代理 $ git config --global http.https://github.com.proxy socks5://127.0.0.1:7890 git config --global https.https://github.com.proxy socks5://127.0.0.1:7890导入cmake直接构建 win32 debug v143 编译opus Build started...

高可用负载均衡搭建

高可用负载均衡搭建 主机名服务IPnginx-ka-master172.17.1.131nginx-ka-backup172.17.1.132web1-server172.17.1.133web2-server172.17.1.134VIP172.17.1.88 1、安装nginx和keepalived服务 roothaproxy-master:~# apt install keepalived haproxy -y2、配置keepalived服务 …

MySQL深度分页优化

MySQL深度分页问题 我们日常做分页需求时,一般会用limit实现,但是当偏移量特别大的时候,查询效率就变得低下。本文将分四个方案,讨论如何优化MySQL百万数据的深分页问题,并附上最近优化生产慢SQL的实战案例。 limit深…

RAMROM

RAM(Random Access Memory),随机存取存储器,也叫主存,又称内存(动态ROM),是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度…

【test】ubuntu系统盘制作

u盘:16G 系统:win11 工具:rufus 镜像版本:ubuntu20.04 Rufus 是一款格式化和创建 USB 启动盘的辅助工具。 本软件适用于以下场景: 需要将可引导 ISO (Windows、Linux、UEFI 等) 刻录到 USB 安装媒介的情况 需要处理未安装操作系统…

[imx6][Linux4.9]IMX6平台 pinctrl子系统

文章目录 1、Pinctrl 子系统1.1、Pinctrl 子系统的作用1.2、设备树中PIN的配置信息1.2、设备树中PIN的配置信息中的复用信息解析1.3、PINCTRL子系统驱动 主控芯片硬件开发板内核版本imx6100ask_imx6ullLinux-4.9.88 1、Pinctrl 子系统 1.1、Pinctrl 子系统的作用 获取设备树…

论文阅读_tinyllama_轻量级大模型

英文名称: TinyLlama: An Open-Source Small Language Model中文名称: TinyLlama: 一个开源的小型语言模型链接: http://arxiv.org/abs/2401.02385v1代码: https://github.com/jzhang38/TinyLlama作者: Peiyuan Zhang, Guangtao Zeng, Tianduo Wang, Wei Lu机构: 新加坡科技与设…

数据库(银行数据库表构建)

题目: 通过所提供的E-R图和数据库模型图完成库表的创建,并插入适量的数据.要求必须使用SQL命令进行构建。 表1 UserInfo **建表** CREATE TABLE USERINFO (customerID INT AUTO_INCREMENT COMMENT 客户编号,customerName CHAR(50) CHARACTER SET utf8mb…

Ubuntu虚拟内存设置-----必成功!!!

!!!!!!!!!下面实例是32G的方式,其他的注意修改count和对应的数值!!!!!! 使用 dd 命令…