欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

GoFrame框架使用避坑指南和實踐干貨

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

gf gen dao

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

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

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

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

好坑。

設置參數(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
}

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

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

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

不使用結構體批量添加數(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
}

gomeGoods.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
}

以上就是GoFrame框架使用避坑指南和實踐干貨的詳細內容,更多關于GoFrame框架避坑干貨的資料請關注腳本之家其它相關文章!

相關文章

  • Go語言程序查看和診斷工具詳解

    Go語言程序查看和診斷工具詳解

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

    一文帶你了解Go語言如何解析JSON

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

    Go語言中的方法定義用法分析

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

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

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

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

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

    Go語言之init函數(shù)

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

    簡單講解Go程序中使用MySQL的方法

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

    基于Go Int轉string幾種方式性能測試

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

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

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

    Go語言中重構的技巧分享

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

最新評論