亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

GoFrame框架使用避坑指南和實(shí)踐干貨

 更新時(shí)間:2022年06月10日 10:53:45   作者:王中陽(yáng)Go  
這篇文章主要為大家介紹了GoFrame框架使用避坑指南和實(shí)踐干貨,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

gf gen dao

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

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

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

因?yàn)闆](méi)有連接到數(shù)據(jù)庫(kù),所以取不到列值;但是因?yàn)榕渲梦募屑s定了表名,文件正常生成了。

好坑。

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

使用 ...interface{}

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

model作為結(jié)構(gòu)體類型

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

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

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

使用with關(guān)聯(lián)取值而不是join

能用with的一定用with關(guān)聯(lián)取值,而不是用join。

發(fā)現(xiàn)自己整理的栗子沒(méi)有官網(wǎng)的好,大家還是看官網(wǎng)吧: goframe.org/pages/viewp…

不使用結(jié)構(gòu)體批量添加數(shù)據(jù)

goframe非常靈活,插入的數(shù)據(jù)可以是結(jié)構(gòu)體也可以是map,也可以是map類型的切片,來(lái)實(shí)現(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
}

gomeGoods.MainImgs的定義:

MainImgs []string `json:"mainImgs"`

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

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

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

以上就是GoFrame框架使用避坑指南和實(shí)踐干貨的詳細(xì)內(nèi)容,更多關(guān)于GoFrame框架避坑干貨的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go語(yǔ)言程序查看和診斷工具詳解

    Go語(yǔ)言程序查看和診斷工具詳解

    這篇文章主要為大家詳細(xì)介紹了Go語(yǔ)言程序查看和診斷工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 一文帶你了解Go語(yǔ)言如何解析JSON

    一文帶你了解Go語(yǔ)言如何解析JSON

    本文將說(shuō)明如何利用?Go?語(yǔ)言將?JSON?解析為結(jié)構(gòu)體和數(shù)組,如果解析?JSON?的嵌入對(duì)象,如何將?JSON?的自定義屬性名稱映射到結(jié)構(gòu)體,如何解析非結(jié)構(gòu)化的?JSON?字符串
    2023-01-01
  • Go語(yǔ)言中的方法定義用法分析

    Go語(yǔ)言中的方法定義用法分析

    這篇文章主要介紹了Go語(yǔ)言中的方法定義用法,實(shí)例分析了方法的定義及使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • golang讀取各種配置文件(ini、json、yaml)

    golang讀取各種配置文件(ini、json、yaml)

    日常項(xiàng)目中,讀取各種配置文件是避免不了的,本文主要介紹了golang讀取各種配置文件(ini、json、yaml),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • golang gin框架獲取參數(shù)的操作

    golang gin框架獲取參數(shù)的操作

    這篇文章主要介紹了golang gin框架獲取參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Go語(yǔ)言之init函數(shù)

    Go語(yǔ)言之init函數(shù)

    Go語(yǔ)言有一個(gè)特殊的函數(shù)init,先于main函數(shù)執(zhí)行,實(shí)現(xiàn)包級(jí)別的一些初始化操作。這篇文章介紹了Go中的Init函數(shù),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 簡(jiǎn)單講解Go程序中使用MySQL的方法

    簡(jiǎn)單講解Go程序中使用MySQL的方法

    這篇文章主要介紹了Go程序中使用MySQL的方法,需要使用第三方包來(lái)進(jìn)行連接,需要的朋友可以參考下
    2015-10-10
  • 基于Go Int轉(zhuǎn)string幾種方式性能測(cè)試

    基于Go Int轉(zhuǎn)string幾種方式性能測(cè)試

    這篇文章主要介紹了Go Int轉(zhuǎn)string幾種方式測(cè)試,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • 如何控制Go編碼JSON數(shù)據(jù)時(shí)的行為(問(wèn)題及解決方案)

    如何控制Go編碼JSON數(shù)據(jù)時(shí)的行為(問(wèn)題及解決方案)

    今天來(lái)聊一下我在Go中對(duì)數(shù)據(jù)進(jìn)行 JSON 編碼時(shí)遇到次數(shù)最多的三個(gè)問(wèn)題以及解決方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-02-02
  • Go語(yǔ)言中重構(gòu)的技巧分享

    Go語(yǔ)言中重構(gòu)的技巧分享

    這篇文章主要來(lái)和大家分享一下Go語(yǔ)言中重構(gòu)的技巧,即如何盡量避免使用 else、break 和 continue,從而讓代碼更透明、更易讀,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-10-10

最新評(píng)論