成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通過實戰(zhàn)總結的 GoFrame 使用小技巧

開發(fā) 后端
生成的dao文件和同事們的不一致,生成文件成功,但是對應的Columns方法是空的。雖然有這個方法,但是方法內(nèi)沒有值。我的版本比同事們的略高,我一直以為是這個原因,各種降級和同事保持一致的版本后還是不行。

gf gen dao

生成dao層的腳手架工具很好用,我遇到的坑是這樣的:

生成的dao文件和同事們的不一致,生成文件成功,但是對應的Columns方法是空的。雖然有這個方法,但是方法內(nèi)沒有值。我的版本比同事們的略高,我一直以為是這個原因,各種降級和同事保持一致的版本后還是不行。

最終發(fā)現(xiàn):是配置文件中連接的數(shù)據(jù)庫不對。

因為沒有連接到數(shù)據(jù)庫,所以取不到列值;但是因為配置文件中約定了表名,文件正常生成了。

如果你也遇到了類似問題,去排查一下配置文件吧。

設置參數(shù)可傳可不傳

這個場景和是否使用GoFrame框架沒關系,如果你也需要設置這個參數(shù)可傳可不傳,也能這么搞:

使用 ...interface{}

比如:

func GetXxx(xxx ...interface{}) { }

model作為結構體類型

當我們的業(yè)務比較復雜,需要更新多個關聯(lián)表時,可以把需要修改的表統(tǒng)一定義到一個結構體中,而不是想到一個model處理一個model。

這種思想比較好,把關聯(lián)的model統(tǒng)一封裝到一個結構體中,很清晰,也能避免有遺漏。

type GoodsRelevantItem struct {
Shop *model.Shops
Brand *model.GoodsBrand
Desc *model.GoodsDescription
Cover []*model.GoodsCover
Attributes []*model.GoodsAttributes
Goods *model.Goods
DisCategory []*model.DisCategory
}

模型關聯(lián)

關于模型關聯(lián),官方是這么說的:

GoFrame的ORM沒有采用其他ORM常見的BelongsTo, HasOne, HasMany, ManyToMany這樣的模型關聯(lián)設計,這樣的關聯(lián)關系維護較繁瑣,例如外鍵約束、額外的標簽備注等,對開發(fā)者有一定的心智負擔。因此gf框架不傾向于通過向模型結構體中注入過多復雜的標簽內(nèi)容、關聯(lián)屬性或方法,并一如既往地嘗試著簡化設計,目標是使得模型關聯(lián)查詢盡可能得易于理解、使用便捷。

我也花時間整理了自己在項目中的示例,但是發(fā)現(xiàn)自己整理的例子沒有官網(wǎng)的好理解,所以最終我還是把自己的例子刪掉了。

「模型關聯(lián)」這部分比較硬核且實用,但是也確實有理解成本。

大家還是看官方示例吧:

「模型關聯(lián)-動態(tài)關聯(lián)-ScanList」:https://goframe.org/pages/viewpage.action?pageId=1114326

「模型關聯(lián)-靜態(tài)關聯(lián)-With特性」:https://goframe.org/pages/viewpage.action?pageId=7297190

我也會把官方示例放到閱讀原文中,方便大家去查看。

添加數(shù)據(jù)

goframe非常靈活,插入的數(shù)據(jù)可以是結構體也可以是map,也可以是map類型的切片,來實現(xiàn)批量添加。

舉個栗子:

主程序如下:

//主圖輪播
goodsImgs := []map[string]interface{}{} //圖片集
for k, img := range gomeGoods.MainImgs {
goodsImg := map[string]interface{}{} //圖片
goodsImg["cover"] = "http:" + img
goodsImg["goods_id"] = gconv.Int(goodsDetail["goods_id"])
goodsImg["sort"] = k
goodsImgs = append(goodsImgs, goodsImg)
}
//添加主圖
err = m.AddGoodsCover(ctx, tx, goodsImgs)
if err != nil {
err = errors.New("添加商品主圖失敗")
return err, 0
}

MainImgs的定義:

MainImgs []string `json:"mainImgs"`

批量插入數(shù)據(jù)

batch指定了批量插入時一次插入的條數(shù)

func (m *goodsMessageService) AddGoodsCover(ctx context.Context, tx *gdb.TX, goodsImgs g.List) (err error) {
if len(goodsImgs) == 0 {
return errors.New("暫無數(shù)據(jù)")
}
_, err = dao.GoodsCover.TX(tx).Ctx(ctx).Batch(len(goodsImgs)).Insert(goodsImgs)
checkErr(err, "UpdateGoodsCover")
return
}

配置插件自動生成service

如果你在用goframe V2.1 以上版本,生成service強烈建議配置goland插件,而不是每次修改logic后手動敲腳本。

配置方式如下:

圖片

配置文件鏈接:https://goframe.org/pages/viewpage.action?pageId=49770772&preview=/49770772/49770777/watchers.xml

小技巧:當自動生成的文件報錯,或者出現(xiàn)一些“神奇的問題”,建議把生成的文件刪除掉。在對應的logic代碼空白處隨便敲個回車或者空格就能生成新的service文件。

注意:千萬不要手動修改自動生成的代碼。(因為自己修改的代碼后期肯定會被覆蓋掉)

總結

紙上得來終覺淺,覺知此事要躬行。

編程是一門手藝活,一定多動手,重實踐,才能獲得長足的進步。

本文轉(zhuǎn)載自微信公眾號「 程序員升級打怪之旅」,作者「王中陽Go」,可以通過以下二維碼關注。

轉(zhuǎn)載本文請聯(lián)系「 程序員升級打怪之旅」公眾號。

責任編輯:武曉燕 來源: 程序員升級打怪之旅
相關推薦

2015-09-15 08:30:23

Android代碼優(yōu)化

2021-12-16 10:53:23

shell命令腳本

2021-05-13 12:46:54

GNU ScreenLinux

2015-08-24 08:59:13

Git技巧

2018-09-07 23:38:45

小程序開發(fā)框架

2013-09-24 10:07:19

Ruby項目

2022-10-27 11:23:26

GoFrame共享變量

2020-10-23 09:50:20

鏈表Java代碼

2013-11-15 14:23:28

Ubuntu技巧

2022-04-02 09:56:44

pipPython

2015-07-27 09:36:09

storyboard

2022-08-15 15:43:29

Linuxcron

2022-08-18 10:01:35

Jmeter技巧

2013-06-07 14:35:19

Mac OS X

2009-07-19 10:48:53

LinuxWebShell反彈CmdLine She

2024-03-26 15:21:43

2022-01-06 15:21:32

pipPython技巧

2022-06-27 17:03:58

LibreOffic

2011-06-17 09:18:56

sudo技巧

2015-06-17 14:18:30

Cryptsetup加密加密U盤
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美综合网 | 中文字幕av第一页 | 日韩黄a| www.日韩高清 | 久久久久国产一级毛片高清网站 | 秋霞电影一区二区三区 | 日韩欧美在线一区二区 | 国产成人精品久久二区二区91 | 狠狠涩| 久久久国产网站 | 日韩不卡视频在线观看 | 老头搡老女人毛片视频在线看 | 久久99精品国产99久久6男男 | 国产97色| 男人视频网站 | 99re热精品视频| 老司机午夜性大片 | 精品视频一二区 | 亚洲天堂一区二区 | 亚洲欧美激情国产综合久久久 | 中文字幕高清av | 精品香蕉一区二区三区 | 亚洲国产成人在线视频 | 国产欧美一区二区三区在线看蜜臀 | 成人午夜在线视频 | 欧美美女爱爱视频 | 国产一区二区自拍 | 国产精品1区2区 | 伊人伊成久久人综合网站 | 久久中文字幕一区 | 亚洲91视频 | 亚洲欧美成人在线 | 日韩中文字幕一区二区 | 久久精品99国产精品 | 久久国产精品72免费观看 | 欧美一级在线观看 | 成人欧美一区二区三区在线播放 | 欧美日韩在线播放 | 欧美福利 | 天堂网av在线 | 欧美一级片在线看 |