# autocreate
## 介绍
在现代软件开发中,代码生成为开发者节省了大量的时间和精力,使开发者规范化项目代码编写、简化项目开发复杂度,让开发者能够把精力聚焦于业务逻辑本身。Go语言作为一种简洁高效的编程语言,也支持代码生成技术。这个工具能够读取数据库表结构,通过对字段类型、名称等分析得到需要的各种变量,根据模板生成相应的各个层的文件。 <br/>
Golang 全自动生成业务框架,原来需要1天的事情,现在只需要1分钟。 <br/>
该工程紧提供数据库单表的生成操作,目前不支持多表关联操作,目前生成的内容仅限于常规的crud操作,复杂业务逻辑需要使用者自行实现。 <br/>
如果想生成前端的代码或者其他语言的代码,可以添加template层的生成模板,对代码进行生成。 <br/>
#### 使用场景
项目初期建设或二次升级时使用,主要负责对新增的数据库表或者新增数据库字段对应的代码进行生成,当操作为旧表添加新字段时,生成后需要根据自己的业务逻辑进行选择性的更新代码操作以免覆盖掉原有的业务逻辑。
#### 使用框架
goframe
#### 生成代码
1: 生成了api<br/>
2: 生成了controller<br/>
3: 生成了common<br/>
4: 生成了dao<br/>
5: 生成了do<br/>
6: 生成了entity<br/>
7: 生成了service<br/>
## 使用方法
1: 首先配置数据库
![配置数据库](doc/1.png)<br/>
修改数据库连接,配置服务的端口,作者和作者联系方式。
2: 运行程序
![运行程序](doc/2.png)<br/>
直接go run main.go即可,也可以通过vscode运行(.vscode/launch.json中的run auto create)
3: 访问代码生成页面
![访问代码生成页面](doc/3.png)<br/>
通过ip和配置的端口访问代码生成器首页
4: 生成器
![生成器](doc/4.png)<br/>
生成器可以通过表明进行过滤表或者全部查询表。
5: 生成代码
![生成代码](doc/5.png)<br/>
填写项目名称和应用名称,选中需要生成代码的数据库表,点击生成代码,后台就会自动进行生成代码。
6: 查看结果
![查看结果](doc/6.png)<br/>
生成后的结果会在result目录下,会以应用名称创建目录将代码包裹起来,将生成好的代码复制到项目中即可使用。
## 生成后代码介绍
##### 以上图user表为例
![查看结果](doc/7.png)<br/>
##### api包括
1. GET /user 列表查询
2. POST /user 添加操作
3. GET /user/:id 详情查询
4. PATCH /user/:id 部分修改操作
5. PUT /user/:id 全量修改操作
6. DELETE /user/:id 删除操作
##### controller包括
1. 列表查询
func (c *cUser) Gets(ctx context.Context, req *v1.GetsUserReq) (res *v1.UserRes, err error)
2. 详情查询
func (c *cUser) Get(ctx context.Context, req *v1.GetUserReq) (res *v1.UserRes, err error)
3. 添加操作
func (c *cUser) Post(ctx context.Context, req *v1.PostUserReq) (res *v1.UserRes, err error)
4. 部分修改操作
func (c *cUser) Patch(ctx context.Context, req *v1.PatchUserReq) (res *v1.UserRes, err error)
5. 全量修改操作
func (c *cUser) Put(ctx context.Context, req *v1.PutUserReq) (res *v1.UserRes, err error)
6. 删除操作
func (c *cUser) Delete(ctx context.Context, req *v1.DeleteUserReq) (res *v1.UserRes, err error)
##### dao包括
1. 添加实体
func (dao *dUser) Add(data entity.User) (int64, error)
2. 修改数据
func (dao *dUser) Update(update, where g.Map) error
3. 通过sql进行修改
func (dao *dUser) UpdateSql(update, where string) error
4. 通过id删除记录
func (dao *dUser) Del(id int64) error
5. 通过条件删除记录
func (dao *dUser) DelBy(where g.Map) error
6. 通过sql删除记录
func (dao *dUser) DelSql(where string) error
7. 通过id查询对象
func (dao *dUser) FindByID(id int64) (*entity.User, error)
8. 条件查询一条数据,支持排序
func (dao *dUser) FindByOne(condition do.UserCondition, orders ...interface{}) (*entity.User, error)
9. 条件查询数据列表
func (dao *dUser) FindBy(condition do.UserCondition) ([]entity.User, error)
10. 条件查询数据列表,支持排序
func (dao *dUser) FindByFilter(condition do.UserCondition, orders ...interface{}) ([]entity.User, error)
11. 条件统计数据总数
func (dao *dUser) CountBy(condition do.UserCondition) (int, error)
##### service包括
1. 列表查询-已实现分页列表查询的基本操作
func (serv *sUser) Gets(servCtx context.Context, req *v1.GetsUserReq) (commonV1.PaginationResult, error)
![](doc/s1.png)<br/>
2. 详情查询-已实现详情查询
func (serv *sUser) Get(servCtx context.Context, req *v1.GetUserReq) (entity.User, error)
![](doc/s2.png)<br/>
3. 数据添加-已实现数据及其实体内的所有属性添加,可根据业务逻辑进行修改。
func (serv *sUser) Post(servCtx context.Context, req *v1.PostUserReq) (int64, error)
![](doc/s3.png)<br/>
4. 数据修改-已实现基本语句修改条件,数据修改内容根据业务逻辑自行修改
func (serv *sUser) Patch(servCtx context.Context, req *v1.PatchUserReq) error
![](doc/s4.png)<br/>
5. 数据修改-已实现基本语句修改条件,数据修改内容根据业务逻辑自行修改
func (serv *sUser) Put(servCtx context.Context, req *v1.PutUserReq) error
![](doc/s5.png)<br/>
6. 数据删除-已实现物理删除操作
func (serv *sUser) Delete(servCtx context.Context, req *v1.DeleteUserReq) error
![](doc/s6.png)<br/>
##### entity包括
选中数据库表对应的实体对象和common相关的对象。
user.go
![](doc/s7.png)<br/>
common.go
![](doc/s8.png)<br/>
do包括
会生成分页查询dao使用到的条件查询对象。
![](doc/s9.png)<br/>
## 运行测试
将各个层的代码复制到项目中,cmd.go中添加controller的配置,启动项目。
![](doc/r1.png)<br/>
##### 添加操作
![](doc/r2.png)<br/>
##### 查询操作
![](doc/r3.png)<br/>
##### 删除操作
![](doc/r4.png)<br/>
## 模板
模板文件在template目录下,直接修改tmp文件内容即可进行修改<br/>
模板文件实现方法在gen_controller中,如果预置模板不能支持业务,可以自行添加。
## 软件架构
数据库: mysql<br/>
golang: latest<br/>
goframe: latest<br/>
后台管理系统<br/>
1:bootstrap(已经全自动生成了JS和html)<br/>
代码资源来自:https://github.com/CrazyRocks/autocreate(工程代码改动量较大,源码仅供参考)在此感谢代码提供者。
没有合适的资源?快使用搜索试试~ 我知道了~
代码生成 内容生成 golang代码生成
共177个文件
go:52个
png:23个
js:15个
需积分: 5 0 下载量 126 浏览量
2024-01-03
11:26:59
上传
评论
收藏 5.37MB ZIP 举报
温馨提示
通过mysql数据库中的表数据,反向生成程序代码,使用简介方便,使用文档在readme中,介绍非常详细,也可根据自己的业务自行修改逻辑进行生成操作。
资源推荐
资源详情
资源评论
收起资源包目录
代码生成 内容生成 golang代码生成 (177个子文件)
config 307B
bootstrap.min.css 118KB
AdminLTE.min.css 88KB
all-skins.min.css 40KB
font-awesome.min.css 30KB
ui.jqgrid-bootstrap.css 19KB
ui.jqgrid.css 17KB
layer.css 14KB
layer.css 5KB
style.css 3KB
main.css 1KB
ui.jqgrid-bootstrap-ui.css 692B
description 73B
fontawesome-webfont.eot 162KB
glyphicons-halflings-regular.eot 20KB
exclude 240B
FETCH_HEAD 102B
loading-0.gif 6KB
loading-2.gif 2KB
loading-1.gif 701B
.gitattributes 84B
.gitignore 39B
gen_controller.go 14KB
risk_week_report.go 6KB
risk_week.go 6KB
potential_hazard.go 5KB
risk_week_report.go 5KB
risk_week.go 5KB
user.go 5KB
user.go 4KB
risk_week_report.go 4KB
risk_week.go 4KB
potential_hazard.go 4KB
risk_week_report.go 3KB
risk_week.go 3KB
potential_hazard.go 3KB
risk_week_report.go 3KB
potential_hazard.go 3KB
risk_week.go 3KB
user.go 3KB
user.go 3KB
potential_hazard.go 2KB
user.go 2KB
user.go 2KB
resp.go 2KB
user.go 2KB
user.go 2KB
boot.go 833B
mlog.go 822B
baseRouter.go 658B
column.go 553B
index_controller.go 533B
common.go 527B
common.go 527B
router.go 461B
user.go 459B
user.go 459B
table.go 357B
common.go 273B
common.go 273B
common.go 270B
common.go 270B
common.go 266B
common.go 266B
common.go 265B
common.go 265B
common.go 265B
common.go 265B
potential_hazard.go 233B
risk_week_report.go 232B
risk_week.go 219B
user.go 210B
user.go 210B
main.go 121B
HEAD 183B
HEAD 183B
HEAD 32B
HEAD 23B
index.html 5KB
generator.html 2KB
success.html 533B
main.html 504B
favicon.ico 66KB
pack-6ab885805d2a51a3d265bde3a48341a3e948fccf.idx 7KB
autocreate.iml 330B
index 9KB
alipay.jpeg 133KB
weixin.jpeg 100KB
1.jpg 315KB
4.jpg 255KB
2.jpg 247KB
5.jpg 164KB
3.jpg 150KB
6.jpg 121KB
7.jpg 117KB
donate.jpg 84KB
jquery.jqGrid.min.js 328KB
jquery.min.js 84KB
vue.min.js 77KB
bootstrap.min.js 36KB
共 177 条
- 1
- 2
资源评论
liuzhenlzlz
- 粉丝: 31
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功