热门推荐
go-frame框架学习笔记
2025-01-01 21:44

go-frame
https://github.com/gogf/gf
https://goframe.org/pages/viewpage.action?pageId=1114119
https://goframe.org/pages/viewpage.action?pageId=43391262
3个参考案例
https://github.com/goflyfox/gmanager
https://github.com/XiaobinZhao/my-gf
https://github.com/gogf/focus-single

1、定义数据结构,在数据库建表,配置config.yaml数据库、gf cli配置(另外建个目录放)

  • created_at、updated_at、deleted_at 有这几个字段时,启动时间记录和软删除
  • 字段名 不区分大小写,也会忽略特殊字符
  • 加上Unscoped()时忽略自动时间更新特性

2、使用生成 dao/do/entity

  • 一般生成的内容不需要、也尽量不去修改,避免下次生成覆盖
  • 目前了解到如果需要配置orm模型关联需要修改

3、在api/controller/service,model里的inputModel和outputModel等处写业务代码

新增

Insert:使用INSERT INTO语句进行数据库写入,如果写入的数据中存在主键或者唯一索引时,返回失败,否则写入一条新数据
InsertIgnore:用于写入数据时如果写入的数据中存在主键或者唯一索引时,忽略错误继续执行写入
InsertAndGetId:用于写入数据时并直接返回自增字段的ID

 

更新

Update用于数据的更新,往往需要结合Data及Where方法共同使用
注意,更新一般都需要使用事务来控制

 

删除

Delete方法用于数据的删除。

 

查询及结果处理

条件查询

 

All 用于查询并返回多条记录的列表/数组。

 

用struct或[]struct接收orm查询返回结果的映射规则

  • struct中需要匹配的属性必须为公开属性(首字母大写)
  • 记录结果中键名会自动按照 不区分大小写 且 忽略-/_/空格符号 的形式与struct属性进行匹配
  • 如果匹配成功,那么将键值赋值给属性,如果无法匹配,那么忽略该键值
 

返回结果判断及处理:直接判断返回的数据是否为nil或者长度为0,或者使用IsEmpty/IsNil方法

 
 

发布静态资源

 

配置swagger-ui

引入swagger-ui资源

 

注册路由,和gf自带的redoc路由/swagger错开,否则会被覆盖

    以上就是本篇文章【go-frame框架学习笔记】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/quote/17859.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站https://sicmodule.kub2b.com/mobile/,查看更多   
发表评论
0评