首先,下载好演示工程 后,我们以user的model来进行代码生成演示。

前言

model是服务访问持久化数据层的桥梁,业务的持久化数据常存在于mysqlmongo等数据库中,我们都知道,对于一个数据库的操作莫过于CURD, 而这些工作也会占用一部分时间来进行开发,我曾经在编写一个业务时写了40model文件,根据不同业务需求的复杂性,平均每个model文件差不多需要 10分钟,对于40个文件来说,400分钟的工作时间,差不多一天的工作量,而goctl工具可以在10秒钟来完成这400分钟的工作。

准备工作

进入演示工程book,找到user/model下的user.sql文件,将其在你自己的数据库中执行建表。

代码生成(带缓存)

方式一(ddl)

进入service/user/model目录,执行命令

  1. $ cd service/user/model $ goctl model mysql ddl -src user.sql -dir . -c
  1. PS D:\Projects\Github\NoobWu\go-zero-demo\book\service\user\model> goctl model mysql ddl -src user.sql -dir . -c

image.png

方式二(datasource)

$ goctl model mysql datasource -url=”$datasource” -table=”user” -c -dir .
Done.

Tip $datasource为数据库连接地址

方式三(intellij 插件)

在Goland中,右键user.sql,依次进入并点击New->Go Zero->Model Code即可生成,或者打开user.sql文件, 进入编辑区,使用快捷键Command+N(for mac OS)或者 alt+insert(for windows),选择Mode Code即可
model生成 - 图2
Tip
intellij插件生成需要安装goctl插件,详情见intellij插件

验证生成的model文件

查看tree
$ tree
. ├── user.sql ├── usermodel.go └── vars.go

猜你想看

model命令及其原理

原文链接

https://go-zero.dev/cn/model-gen.html