GoFrame初使用分享
Posted StaticAuto
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GoFrame初使用分享相关的知识,希望对你有一定的参考价值。
GoFrame使用经验浅谈
GoFrame,既是一款优秀的开发框架,也是一套高质量的基础组件集,这一切都是若干年日积月累
的沉淀成果,难以一蹴而就,这也是其他 Golang "框架"和"类库"难以企及和比拟的。
由于初次使用GoFrame(以下简称GF)主要是用于方便操作数据库(这里使用的是postgres)
所以主要聊聊关于数据库中GF的一些简单用法,后续随着使用的深入,也会不断的更新
工具安装
使用方式:./gf install
该命令往往是在gf命令行工具下载到本地后执行(注意执行权限),用于将gf命令安装到系统环境变量默认支持的目录路径中,以便于在系统任何的地方直接可以使用gf工具。至于gf命令行工具可以自行搜索,配置完成后终端输入gf env
,检查是否安装成功
文件配置
刚学习的小伙伴上手第一个要接触的便是配置文件,在创建好项目之后便可以开始填写配置文件了
官方配置实例:链接: https://goframe.org/pages/viewpage.action?pageId=3670160.
项目配置实例:
HTTP Server
[server]
Address = ":8080"
ServerRoot = "public"
ServerAgent = "gf-app"
LogPath = "/tmp/log/gf-app/server"
ClientMaxBodySize = "512m"
Logger.
[logger]
Path = "/tmp/log/gf-app"
Level = "all"
Stdout = true
加载配置文件
[loadConfig]
#devModels = true
#各目录定义,各平台根据需要只修改root路径
#root为根目录,所有目录基于此创建
#project为工程目录,D:\\\\data\\\\project
#tmp为临时文件夹,重启会删除,D:\\\\data\\\\tmp
#upload为上传时临时存放路径,在tmp下D:\\\\data\\\\tmp\\\\upload
#protocol为协议存放路径 D:\\\\data\\\\protocol
[path]
root = "D:\\\\data"
project = "project"
label = "triggersourcemould"
tmp = "tmp"
upload = "upload"
protocol = "protocol"
数据库连接配置
[database]
[database.default]
link = "pgsql: user=postgres password=*** host=192.168.**.** port=5432 dbname=postgres sslmode=disable"
debug = true
[database.postgres]
link = "pgsql: user=postgres password=*** host=192.168.**.** port=5432 dbname=postgres sslmode=disable"
debug = true
工具相关配置
[gfcli]
# dao生成
[[gfcli.gen.dao]]
link = "pgsql: user=postgres password=***** host=192.168.***.*** port=5432 dbname=postgres sslmode=disable"
path = "./app"
tables = "protocolmould"
需要特别注意的是,配置文件对缩进有着严格的要求,可以参考官方缩进的格式
在数据库连接配置中,一定不要忘记配置 [database.default]
,postgres中sslmode
不可省略,其他数据库有待读者自己去体验
生成model,dao代码
在上述文件配置完成后,去数据库建好表,注意表名更改,在终端输入gf gen dao
便可生成model和dao代码(什么?model也生成了?Amazing!),会自动在你的项目根目录下创建dao和model两个目录
数据库操作
这些都做完之后,就可以开始通过代码进行数据库操作了,以表protocolmould为例,举几个简单的例子
查询
dao.ProtocolInfo.Where(params.Where).Count()
查询条数,where中的字符是自定义的条件
dao.ProtocolInfo.Where(params.Where).scan(&data)
查询并将查到的数据存入结构体data
dao.ProtocolInfo.All()
查询该表中所有数据
一个分页查询的例子
var total int
protocolInfo := dao.ProtocolInfo.Page(params.Page, params.PageSize)
if len(params.Where)>0
protocolInfo = protocolInfo.Where(params.Where)
total,_ = dao.ProtocolInfo.Where(params.Where).Count()
else
total,_ = dao.ProtocolInfo.Count()
if len(params.OrderBy)>0
protocolInfo = protocolInfo.Order(params.OrderBy)
res, err := protocolInfo.All()
if err != nil
glog.Println(err)
err = gerror.NewCode(model.ERR_DB_QUERY, err.Error())
return nil, err
else
return &model.DataRes
Items: res,
Total: total,
, nil
插入
dao.ProtocolInfo.Data(data).Insert()
将data中的数据插入表中
更新
dao.ProtocolInfo.Data(数据).Update()
在gf中也有gmap的用法,将我们需要的数据进行更新,增删改查同理
dao.Protocolmould.Data(g.Map
dao.Protocolmould.Columns.Name:data.Name,
dao.Protocolmould.Columns.ProtocolId:data.Len,
).Update()
删除
dao.ProtocolInfo.Data(数据).Where(条件).Delete()
gf框架中封装了许多好用的函数,提高了我们的开发效率,这里只做一个简介,主要是Where,Data
以及增删改查函数的配合使用,达到我们的数据库操作目的
以上是关于GoFrame初使用分享的主要内容,如果未能解决你的问题,请参考以下文章
vue3.0 Composition API 上手初体验 函数组件的开发与使用
vue3.0 Composition API 上手初体验 函数组件的开发与使用
vue3.0 Composition API 上手初体验 普通组件的开发与使用