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

GoFrame?ORM原生方法操作示例

 更新時間:2022年06月10日 10:37:32   作者:王中陽Go  
這篇文章主要為大家介紹了GoFrame?ORM原生方法操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

最近一直在用GoFrame(下文簡稱gf)來開發(fā)項目,在熟悉業(yè)務邏輯之后就是馬不停蹄的擼代碼了。

之前整理過結構體和json轉換的文章:GoFrame必知必會之Scan:類型轉換,今天整理同樣比較重要的ORM相關的文章。

gf是支持ORM原生操作的,在ORM鏈式操作執(zhí)行不了太過于復雜的SQL操作時,可以交給方法操作來處理。

這篇文章整理原生操作的常用方法,下篇文章根據(jù)整理的原生方法整理對應的開箱體驗。

常用方法

SQL操作方法,返回原生的標準庫sql對象

  • Query是原始的數(shù)據(jù)查詢方法,返回的是原生的標準庫的結果集對象,需要自行解析。
  • Exec方法用于寫入/更新的SQL的操作。
Query(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
Exec(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
Prepare(ctx context.Context, query string) (*sql.Stmt, error)

數(shù)據(jù)表記錄查詢:

  • 查詢單條記錄、查詢多條記錄、獲取記錄對象、查詢單個字段值(鏈式操作同理)
  • 在執(zhí)行數(shù)據(jù)查詢時推薦使用Get*系列查詢方法。
GetAll(ctx context.Context, sql string, args ...interface{}) (Result, error)
GetOne(ctx context.Context, sql string, args ...interface{}) (Record, error)
GetValue(ctx context.Context, sql string, args ...interface{}) (Value, error)
GetArray(ctx context.Context, sql string, args ...interface{}) ([]Value, error)
GetCount(ctx context.Context, sql string, args ...interface{}) (int, error)
GetScan(ctx context.Context, objPointer interface{}, sql string, args ...interface{}) error

數(shù)據(jù)單條操作

Insert/Replace/Save方法中的data參數(shù)支持的數(shù)據(jù)類型為:

string/map/slice/struct/*struct,當傳遞為slice類型時,自動識別為批量操作,此時batch參數(shù)有效。

Insert(ctx context.Context, table string, data interface{}, batch...int) (sql.Result, error)
Replace(ctx context.Context, table string, data interface{}, batch...int) (sql.Result, error)
Save(ctx context.Context, table string, data interface{}, batch...int) (sql.Result, error)

在這里由衷的感嘆一句:gf確實非常方便。至今記得自己用gorm1.1版本時,困頓于批量插入無法自拔:# Go GORM是時候升級新版本了 2.0新特性介紹

數(shù)據(jù)修改/刪除

Update(ctx context.Context, table string, data interface{}, condition interface{}, args ...interface{}) (sql.Result, error)
Delete(ctx context.Context, table string, condition interface{}, args ...interface{}) (sql.Result, error)

總結

雖然GoFrame的ORM鏈式操作非常簡單且強大,但是業(yè)務中總還是有一些邏輯需要使用原生方法實現(xiàn),化繁為簡。

以上就是GoFrame ORM原生方法操作示例的詳細內容,更多關于GoFrame ORM原生方法的資料請關注腳本之家其它相關文章!

相關文章

  • GO中高效的將int轉換為string的方法與源碼

    GO中高效的將int轉換為string的方法與源碼

    本文將從逐步介紹幾種在?Go?中將?int?轉換為?string?的常見方法,并重點剖析這幾種方法在性能上的特點,另外,還會重點介紹?FormatInt?高效的算法實現(xiàn),需要的朋友可以參考下
    2024-01-01
  • go語言基礎 seek光標位置os包的使用

    go語言基礎 seek光標位置os包的使用

    這篇文章主要介紹了go語言基礎 seek光標位置os包的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Go語言中的函數(shù)式編程實踐

    Go語言中的函數(shù)式編程實踐

    這篇文章主要介紹了Go語言中的函數(shù)式編程實踐,主要講解Go語言中的函數(shù)式編程概念和使用。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Golang實現(xiàn)常見的限流算法的示例代碼

    Golang實現(xiàn)常見的限流算法的示例代碼

    限流是項目中經(jīng)常需要使用到的一種工具,一般用于限制用戶的請求的頻率,也可以避免瞬間流量過大導致系統(tǒng)崩潰,或者穩(wěn)定消息處理速率,本文主要介紹了使用Go實現(xiàn)常見的限流算法,希望對大家有所幫助
    2023-04-04
  • go浮點數(shù)轉字符串保留小數(shù)點后N位的完美解決方法

    go浮點數(shù)轉字符串保留小數(shù)點后N位的完美解決方法

    這篇文章主要介紹了go浮點數(shù)轉字符串保留小數(shù)點后N位解決辦法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 詳解golang中bufio包的實現(xiàn)原理

    詳解golang中bufio包的實現(xiàn)原理

    這篇文章主要介紹了詳解golang中bufio包的實現(xiàn)原理,通過分析golang中bufio包的源碼,來了解為什么bufio能夠提高文件讀寫的效率和速度
    2018-01-01
  • golang的os包用法詳解

    golang的os包用法詳解

    Go語言的 os 包中提供了操作系統(tǒng)函數(shù)的接口,是一個比較重要的包。顧名思義,os 包的作用主要是在服務器上進行系統(tǒng)的基本操作,本文將詳細介紹了golang的os包用法,需要的朋友可以參考下
    2023-05-05
  • golang json性能分析詳解

    golang json性能分析詳解

    json格式可以算我們日常最常用的序列化格式之一了,Go語言作為一個由Google開發(fā),號稱互聯(lián)網(wǎng)的C語言的語言,自然也對JSON格式支持很好。下面這篇文章主要給大家詳細分析介紹了golang json性能的相關資料,需要的朋友可以參考下。
    2018-02-02
  • go語言實現(xiàn)的memcache協(xié)議服務的方法

    go語言實現(xiàn)的memcache協(xié)議服務的方法

    這篇文章主要介紹了go語言實現(xiàn)的memcache協(xié)議服務的方法,實例分析了Go語言使用memcache的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 從Context到go設計理念輕松上手教程

    從Context到go設計理念輕松上手教程

    這篇文章主要為大家介紹了從Context到go設計理念輕松上手教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09

最新評論