av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

創(chuàng)新互聯(lián)GoFrame教程:GoFrame 數(shù)據(jù)庫(kù)ORM-基本介紹

?GOFrame?框架的?ORM?功能由?gdb?模塊實(shí)現(xiàn),用于常用關(guān)系型數(shù)據(jù)庫(kù)的?ORM?操作。

?gdb?數(shù)據(jù)庫(kù)引擎底層采用了鏈接池設(shè)計(jì),當(dāng)鏈接不再使用時(shí)會(huì)自動(dòng)關(guān)閉,因此鏈接對(duì)象不用的時(shí)候不需要顯式使用?Close?方法關(guān)閉數(shù)據(jù)庫(kù)連接。

注意:為提高數(shù)據(jù)庫(kù)操作安全性,在?ORM?操作中不建議直接將參數(shù)拼接成?SQL?字符串執(zhí)行,建議使用預(yù)處理的方式(充分使用?占位符)來(lái)傳遞?SQL?參數(shù)。?gdb?的底層實(shí)現(xiàn)中均采用的是預(yù)處理的方式處理開(kāi)發(fā)者傳遞的參數(shù),以充分保證數(shù)據(jù)庫(kù)操作安全性。

接口文檔:

https://pkg.go.dev/github.com/gogf/gf/v2/database/gdb

組件特性

?GoFrame ORM?組件具有以下顯著特點(diǎn): 

  1. 全自動(dòng)化支持嵌套事務(wù)。
  2. 面向接口化設(shè)計(jì)、易使用易擴(kuò)展。
  3. 內(nèi)置支持主流數(shù)據(jù)庫(kù)類型驅(qū)動(dòng),并易于擴(kuò)展。
  4. 強(qiáng)大的配置管理,使用框架統(tǒng)一的配置組件。
  5. 支持單例模式獲取配置同一分組數(shù)據(jù)庫(kù)對(duì)象。
  6. 支持原生?SQL?方法操作、?ORM?鏈?zhǔn)讲僮鲀煞N方式。
  7. 支持?OpenTelemetry?可觀測(cè)性:鏈路跟蹤、日志記錄、指標(biāo)上報(bào)。
  8. 通過(guò)?Scan?方法自動(dòng)識(shí)別?Map/Struct?接收查詢結(jié)果,自動(dòng)化查詢結(jié)果初始化、結(jié)構(gòu)體類型轉(zhuǎn)換。
  9. 通過(guò)返回結(jié)果?nil?識(shí)別為空,無(wú)需?sql.ErrNoRows?識(shí)別查詢數(shù)據(jù)為空的情況。
  10. 全自動(dòng)化的結(jié)構(gòu)體屬性-字段映射,無(wú)需顯示定義結(jié)構(gòu)體標(biāo)簽維護(hù)屬性-字段映射關(guān)系。
  11. 自動(dòng)化的給定?Map/Struct/Slice?參數(shù)類型中的字段識(shí)別、過(guò)濾,大大提高查詢條件輸入、結(jié)果接收。
  12. 完美支持?GoFrame?框架層面的?DAO?設(shè)計(jì),全自動(dòng)化?Model/DAO?代碼生成,極大提高開(kāi)發(fā)效率。
  13. 支持調(diào)試模式、日志輸出、?DryRun?、自定義?Handler?、自動(dòng)類型類型轉(zhuǎn)換、自定義接口轉(zhuǎn)換等等高級(jí)特性。
  14. 支持查詢緩存、軟刪除、自動(dòng)化時(shí)間更新、模型關(guān)聯(lián)、數(shù)據(jù)庫(kù)集群配置(軟件主從模式)等等實(shí)用特性。

知識(shí)圖譜

?GoFrame ORM Features?

組件關(guān)聯(lián)

?GoFrame ORM Dependencies?

g.DB與gdb.New、gdb.Instance

獲取數(shù)據(jù)庫(kù)操作對(duì)象有三種方式,一種是使用?g.DB?方法(推薦),一種是使用原生?gdb.New?方法,還有一種是使用包原生單例方法?gdb.Instance?,而第一種是推薦的使用方式。這三種方式的區(qū)別如下:

  • ?g.DB?對(duì)象管理方式獲取的是單例對(duì)象,整合了配置文件的管理功能,支持配置文件熱更新。
  • ?gdb.New?是根據(jù)給定的數(shù)據(jù)庫(kù)節(jié)點(diǎn)配置創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)對(duì)象(非單例),無(wú)法使用配置文件。
  • ?gdb.Instance?是包原生單例管理方法,需要結(jié)合配置方法一起使用,通過(guò)分組名稱(非必需)獲取對(duì)應(yīng)配置的數(shù)據(jù)庫(kù)單例對(duì)象。

有這么多對(duì)象獲取方式原因在于?GoFrame?是一個(gè)模塊化設(shè)計(jì)的框架,每個(gè)模塊皆可單獨(dú)使用。

New創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象

db, err := gdb.New(gdb.ConfigNode{
	Link: "mysql:root:12345678@tcp(127.0.0.1:3306)/test",
})

獲取數(shù)據(jù)庫(kù)對(duì)象單例

// 獲取默認(rèn)配置的數(shù)據(jù)庫(kù)對(duì)象(配置名稱為"default")
db := g.DB()

// 獲取配置分組名稱為"user"的數(shù)據(jù)庫(kù)對(duì)象
db := g.DB("user")


// 使用原生單例管理方法獲取數(shù)據(jù)庫(kù)對(duì)象單例
db, err := gdb.Instance()
db, err := gdb.Instance("user")

內(nèi)置支持的數(shù)據(jù)庫(kù)類型

由于go標(biāo)準(zhǔn)庫(kù)的數(shù)據(jù)庫(kù)操作對(duì)象采用接口實(shí)現(xiàn),因此提供了非常好的可擴(kuò)展性和兼容性。框架已支持的第三方數(shù)據(jù)庫(kù)驅(qū)動(dòng)請(qǐng)參考:https://github.com/gogf/gf/tree/master/contrib/drivers

額外接入新的數(shù)據(jù)庫(kù)相當(dāng)方便,可參考源碼中關(guān)于?PostgreSQL?、?SQLite?、?Oracle?、?SQL Server?的接入方式。


新聞標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame 數(shù)據(jù)庫(kù)ORM-基本介紹
文章位置:http://uogjgqi.cn/article/dphcohg.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流