国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN

這篇具有很好參考價(jià)值的文章主要介紹了無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

OutPath:?“…/dal/query”,

ModelPkgPath:?“…/dal/model”,?//?默認(rèn)情況下會(huì)跟隨OutPath參數(shù),在同目錄下生成model目錄

/*?Mode:?gen.WithoutContext,*/

})

//?復(fù)用工程原本使用的SQL連接配置db(*gorm.DB)

//?非必需,但如果需要復(fù)用連接時(shí)的gorm.Config或需要連接數(shù)據(jù)庫同步表信息則必須設(shè)置

g.UseDB(db)

peopleTbl?:=?g.GenerateModelAs(“people”,?“People”)?//?指定對(duì)應(yīng)表格的結(jié)構(gòu)體名稱

//?為指定的結(jié)構(gòu)體或表格生成基礎(chǔ)CRUD查詢方法,ApplyInterface生成效果的子集

g.ApplyBasic(

model.User{},

peopleTbl,

)

//?為指定的數(shù)據(jù)庫表實(shí)現(xiàn)除基礎(chǔ)方法外的相關(guān)方法,?同時(shí)也會(huì)生成ApplyBasic對(duì)應(yīng)的基礎(chǔ)方法

//?可以認(rèn)為ApplyInterface方法是ApplyBasic的擴(kuò)展版

g.ApplyInterface(func(model.SearchByTenantMethod,model.UpdateByTenantMethod)?{},?//?指定方法interface,可指定多個(gè)

model.Order{},

g.GenerateModel(“Company”),?//?在這里調(diào)用也會(huì)生成ApplyBasic對(duì)應(yīng)的基礎(chǔ)方法

)

//?執(zhí)行并生成代碼

g.Execute()

}

3. 基礎(chǔ)查詢

執(zhí)行生成代碼后,GEN 會(huì)幫助生成基礎(chǔ)的查詢方法,并且綁定到結(jié)構(gòu)體上,可以直接調(diào)用函數(shù)查詢獲取查詢結(jié)果,不需要提前定義變量,參數(shù)和結(jié)構(gòu)體字段類型綁定,防止研發(fā)過程中誤用。

u?:=?query.Use(db).User

u.WithContext(ctx).Select(u.Name,?u.Age).Create(&user)

//?INSERT?INTO?users?(name,age)?VALUES?(“modi”,?18)

user,?err?:=?u.WithContext(ctx).Where(u.Name.Eq(“iDer”),u.Age.Gte(18)).First()

//?SELECT?*?FROM?users?WHERE?name?=?“iDer”?and?age>=18;

_,?err?:=?u.WithContext(ctx).Where(u.ID.Eq(12)).Update(u.Name,?“jinzhu”)

//?UPDATE?users?SET?name=“jinzhu”,?updated_at=‘2013-11-17?21:34:10’?WHERE?id=12;

e.WithContext(ctx).Where(u.ID.Eq(10)).Delete()

//?DELETE?from?users?where?id?=?10;

orders,?err?:=?o.WithContext(ctx).Where(u.Columns(o.Amount).Gt(o.Select(u.Amount.Avg())).Find()

//?SELECT?*?FROM?“orders”?WHERE?amount?>?(SELECT?AVG(amount)?FROM?“orders”);

GEN 滿足了基本上所有的日常使用的查詢方法,包括事務(wù)、關(guān)聯(lián)關(guān)系等高級(jí)用法,更多案例請(qǐng)參考:https://github.com/go-gorm/gen#readme

4. 自定義 SQL 查詢

自定 SQL 的安全性是所有 ORM 最難解決的問題,GEN 使用模板注釋的方法完美解決了這個(gè)問題,只需要將 SQL 注釋到 interface 的方法上。SQL 支持簡(jiǎn)單的 where 查詢和完整 SQL 查詢,條件用Where()語法包住。Raw SQL 用sql()包住,也可省略直接寫。

占位符

  • gen.T 用于返回?cái)?shù)據(jù)的結(jié)構(gòu)體,會(huì)根據(jù)生成結(jié)構(gòu)體或者數(shù)據(jù)庫表結(jié)構(gòu)自動(dòng)生成

  • gen.M 表示map[string]interface{},用于返回?cái)?shù)據(jù)

  • gen.RowsAffected 用于執(zhí)行 SQL 進(jìn)行更新或刪除時(shí)候,用于返回影響行數(shù)

  • @@table?查詢的表名,如果沒有傳參,會(huì)根據(jù)結(jié)構(gòu)體或者表名自動(dòng)生成

  • @@<name> 當(dāng)表名或者字段名可控時(shí)候,用@@占位,name 為可變參數(shù)名,需要函數(shù)傳入。

  • @<name> 當(dāng)數(shù)據(jù)可控時(shí)候,用@占位,name 為可變參數(shù)名,需要函數(shù)傳入

子句

目前支持 if 、where 、set 子句,子句需要用{{}}括起來,并且需要用{{end}} 結(jié)束子句。where 和 set 子句會(huì)幫助做連接詞補(bǔ)全和開頭連接詞刪除。各個(gè)子句支持嵌套使用。

type?Method?interface?{

//?Where(“name=@name?and?age=@age”)

SimpleFindByNameAndAge(name?string,?age?int)?(gen.T,?error)

//?select?*?from?users?where?id=@id

FindUserToMap(id?int)?(gen.M,?error)

//?sql(insert?into?@@table?(name,age)?values?(@name,@age)?)

InsertValue(age?int,?name?string)?error

//?select?name?from?@@table?where?id=@id

FindNameById(id?int)?string

//?select?*?from?@@table

//??{{where}}

//??????id>0

//??????{{if?cond}}id=@id?{{end}}

//??????{{if?key!=“”?&&?value?!=?“”}}?or?@@key=@value{{end}}

//??{{end}}

FindByIDOrCustom(cond?bool,?id?int,?key,?value?string)?([]gen.T,?error)

//?update?@@table

//??{{set}}

//??????update_time=now()

//??????{{if?name?!=?“”}}

//??????????name=@name

//??????{{end}}

//??{{end}}

//??{{where}}

//??????id=@id

//??{{end}}

UpdateName(name?string,?id?int)?(gen.RowsAffected,error)

}

GEN 會(huì)自動(dòng)生成安全的實(shí)現(xiàn)代碼,并且和結(jié)構(gòu)體綁定。使用時(shí)候直接調(diào)用對(duì)應(yīng)的函數(shù)即可。

user,err?:=?u.SimpleFindByNameAndAge(“zhangqiang”,18)

resultMap,err:=?u.FindUserToMap(2)

name?:=?u.FindNameById(5)

users,err?:=?u.FindByIDOrCustom(true,?10,?“name”,?“modi”)

rows,err?:=?UpdateName(“jinzhu”,?12)

5. 最佳實(shí)踐目錄推薦

demo

├──?cmd

│???└──?generate

│???????└──?generate.go?#?包含main函數(shù),執(zhí)行其即可完成生成代碼步驟

├──?dal

│???├──?dal.go?#?實(shí)現(xiàn)具體的數(shù)據(jù)庫連接等操作

│???└──?model

│???│???├──?method.go?#?指定所有自定義查詢方法

│???│???└──?model.go??#?描述與數(shù)據(jù)庫表對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)(體)

│???└──?query??#?生成的代碼存放目錄,?在執(zhí)行代碼生成操作后自動(dòng)創(chuàng)建

│???????└──?gen.go?#?生成的通用查詢代碼

│???????└──?tablename.gen.go?#?生成的單個(gè)表字段和相關(guān)的查詢代碼

├──?biz

│???└──?query.go?#?實(shí)現(xiàn)業(yè)務(wù)邏輯,調(diào)用生成的代碼查詢數(shù)據(jù)庫

├──?config

│???└──?config.go?#?存儲(chǔ)相關(guān)的數(shù)據(jù)庫DSN

├──?generate.sh?#?調(diào)用generate中main函數(shù)生成代碼的腳本(推薦使用)

├──?go.mod

├──?go.sum

└──?main.go

GEN 項(xiàng)目地址

  • https://github.com/go-gorm/gen

寫在最后


  • GEN 是一個(gè)從開始研發(fā)就立足安全角度的項(xiàng)目,在項(xiàng)目過程中充分考慮業(yè)務(wù)使用的需求,特別是很多 GORM 的功能,GORM 項(xiàng)目已經(jīng)維護(hù)發(fā)展了 8 年,集成了很多業(yè)務(wù)使用的需求。GEN 對(duì) GORM 完全兼容,將 GORM 的所有功能實(shí)現(xiàn)到 GEN 工具中。在安全上,采用了類型安全限制和充分的安全檢查,完全避免了出現(xiàn) SQL 注入問題,在用戶體驗(yàn)上,增加了自動(dòng)同步表結(jié)構(gòu)體功能和一鍵所有查詢相關(guān)代碼生成功能,開發(fā)體驗(yàn)拉滿,快來在你的項(xiàng)目上試試吧?? 。
    自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)初中級(jí)Android工程師,想要提升技能,往往是自己摸索成長或者是報(bào)班學(xué)習(xí),但對(duì)于培訓(xùn)機(jī)構(gòu)動(dòng)則近萬的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Android移動(dòng)開發(fā)全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。

無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN,程序員,安全,oracle,數(shù)據(jù)庫

無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN,程序員,安全,oracle,數(shù)據(jù)庫

無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN,程序員,安全,oracle,數(shù)據(jù)庫

無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN,程序員,安全,oracle,數(shù)據(jù)庫

無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN,程序員,安全,oracle,數(shù)據(jù)庫

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Android開發(fā)知識(shí)點(diǎn),真正體系化!

由于文件比較大,這里只是將部分目錄截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!

如果你覺得這些內(nèi)容對(duì)你有幫助,可以掃碼獲?。。。▊渥ⅲ篈ndroid)

無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN,程序員,安全,oracle,數(shù)據(jù)庫

自學(xué)編程路線、面試題集合/面經(jīng)、及系列技術(shù)文章等,資源持續(xù)更新中…

無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN,程序員,安全,oracle,數(shù)據(jù)庫

《Android學(xué)習(xí)筆記總結(jié)+移動(dòng)架構(gòu)視頻+大廠面試真題+項(xiàng)目實(shí)戰(zhàn)源碼》,點(diǎn)擊傳送門即可獲??!

截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!**

如果你覺得這些內(nèi)容對(duì)你有幫助,可以掃碼獲?。。。▊渥ⅲ篈ndroid)

無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN,程序員,安全,oracle,數(shù)據(jù)庫

自學(xué)編程路線、面試題集合/面經(jīng)、及系列技術(shù)文章等,資源持續(xù)更新中…

[外鏈圖片轉(zhuǎn)存中…(img-woWC819r-1712426857874)]文章來源地址http://www.zghlxwxcb.cn/news/detail-853482.html

《Android學(xué)習(xí)筆記總結(jié)+移動(dòng)架構(gòu)視頻+大廠面試真題+項(xiàng)目實(shí)戰(zhàn)源碼》,點(diǎn)擊傳送門即可獲?。?/strong>

到了這里,關(guān)于無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 實(shí)驗(yàn)室安全

    [判斷題] 基于安全考慮,每個(gè)實(shí)驗(yàn)房間每天最后一個(gè)離開的同學(xué)必須確保進(jìn)行斷電處理【4分】 正確答案:B 解析:暫無解析 [判斷題] 實(shí)驗(yàn)用電烙鐵應(yīng)有專門擱架,用畢立即切斷電源【4分】 正確答案:A 解析:暫無解析 [判斷題] 集中供氣是解決實(shí)驗(yàn)室存放過多氣瓶的有效途徑

    2024年02月08日
    瀏覽(39)
  • 實(shí)驗(yàn)室安全考試

    1、[判斷題] 火災(zāi)對(duì)實(shí)驗(yàn)室構(gòu)成的威脅最為嚴(yán)重,最為直接。應(yīng)加強(qiáng)對(duì)火災(zāi)三要素(易燃物、助燃物、點(diǎn)火源)的控制。 (分值1.0) 你的答案: 正確 2、[判斷題] 50毫安的工頻電流就可以使人遭到致命電擊。 (分值1.0) 你的答案: 正確 3、[判斷題] 用電安全的基本要素有:電

    2024年02月06日
    瀏覽(33)
  • 網(wǎng)絡(luò)安全實(shí)驗(yàn)室2.基礎(chǔ)關(guān)

    網(wǎng)絡(luò)安全實(shí)驗(yàn)室2.基礎(chǔ)關(guān)

    url:http://lab1.xseclab.com/base1_4a4d993ed7bd7d467b27af52d2aaa800/index.php 查看網(wǎng)頁源代碼的方式有4種,分別是:1、鼠標(biāo)右擊會(huì)看到”查看源代碼“,這個(gè)網(wǎng)頁的源代碼就出現(xiàn)在你眼前了;2、可以使用快捷Ctrl+U來查看源碼;3、在地址欄前面加上view-source,如view-source:https://www.baidu.com ;

    2023年04月17日
    瀏覽(26)
  • 鑒源實(shí)驗(yàn)室丨汽車網(wǎng)絡(luò)安全運(yùn)營

    鑒源實(shí)驗(yàn)室丨汽車網(wǎng)絡(luò)安全運(yùn)營

    作者 |? 蘇少博 上??匕部尚跑浖?chuàng)新研究院汽車網(wǎng)絡(luò)安全組 來源 | ?鑒源實(shí)驗(yàn)室 社群 |? 添加微信號(hào)“ TICPShanghai ”加入“上??匕?1fusa安全社區(qū)” 01 概 述 1.1 背景 隨著車輛技術(shù)的不斷進(jìn)步和智能化水平的提升,車輛行業(yè)正經(jīng)歷著快速的變革和技術(shù)進(jìn)步。智能化和互聯(lián)技術(shù)

    2024年02月12日
    瀏覽(28)
  • BFT最前線丨浙江大學(xué)和螞蟻集團(tuán)合作,成立智能視覺實(shí)驗(yàn)室;ChatGPT 對(duì)亞洲節(jié)點(diǎn)大規(guī)模封號(hào);谷歌CEO稱將推出Bard升級(jí)版

    BFT最前線丨浙江大學(xué)和螞蟻集團(tuán)合作,成立智能視覺實(shí)驗(yàn)室;ChatGPT 對(duì)亞洲節(jié)點(diǎn)大規(guī)模封號(hào);谷歌CEO稱將推出Bard升級(jí)版

    文 | BFT機(jī)器人 浙江大學(xué)和螞蟻集團(tuán)合作,成立智能視覺實(shí)驗(yàn)室 據(jù)消息,浙江大學(xué)和螞蟻集團(tuán)達(dá)成合作成立「智能視覺聯(lián)合實(shí)驗(yàn)室」,旨在推進(jìn)智能視覺的技術(shù)創(chuàng)新和產(chǎn)業(yè)應(yīng)用,重點(diǎn)攻堅(jiān)包括機(jī)器視覺、三維重建、視覺內(nèi)容生成等人工智能及計(jì)算機(jī)視覺在內(nèi)的核心智能視覺技

    2024年02月09日
    瀏覽(25)
  • 網(wǎng)絡(luò)安全實(shí)驗(yàn)室|網(wǎng)絡(luò)信息安全攻防學(xué)習(xí)平臺(tái)(腳本關(guān)1-6)

    網(wǎng)絡(luò)安全實(shí)驗(yàn)室|網(wǎng)絡(luò)信息安全攻防學(xué)習(xí)平臺(tái)(腳本關(guān)1-6)

    傳送門: http://hackinglab.cn/ 點(diǎn)擊此處開啟抓包,send ti repeater 模塊 腳本來源: https://blog.csdn.net/hzxtjx/article/details/125692349 使用requests庫向網(wǎng)站發(fā)送HTTP請(qǐng)求,并使用re模塊使用正則表達(dá)式從網(wǎng)站的HTML內(nèi)容中提取信息。所選的代碼塊定義了一個(gè)正則表達(dá)式模式r’/n(.*?)=i’。此模式

    2024年02月08日
    瀏覽(33)
  • 鑒源實(shí)驗(yàn)室丨SOME/IP協(xié)議安全攻擊

    鑒源實(shí)驗(yàn)室丨SOME/IP協(xié)議安全攻擊

    作者 |? 張昊暉?上??匕部尚跑浖?chuàng)新研究院工控網(wǎng)絡(luò)安全組 來源 | ?鑒源實(shí)驗(yàn)室 社群 |? 添加微信號(hào)“ TICPShanghai ”加入“上??匕?1fusa安全社區(qū)” 01 引 言 隨著汽車行業(yè)對(duì)于數(shù)據(jù)通信的需求不斷增加,SOME/IP作為支持汽車以太網(wǎng)進(jìn)程和設(shè)備間通信的一種通信協(xié)議應(yīng)運(yùn)而生。

    2024年02月14日
    瀏覽(23)
  • 鑒源實(shí)驗(yàn)室丨汽車網(wǎng)絡(luò)安全攻擊實(shí)例解析(二)

    鑒源實(shí)驗(yàn)室丨汽車網(wǎng)絡(luò)安全攻擊實(shí)例解析(二)

    作者 |? 田錚?上??匕部尚跑浖?chuàng)新研究院項(xiàng)目經(jīng)理 來源 | ?鑒源實(shí)驗(yàn)室 社群 |? 添加微信號(hào)“ TICPShanghai ”加入“上??匕?1fusa安全社區(qū)” 引言: 汽車信息安全事件頻發(fā)使得汽車行業(yè)安全態(tài)勢(shì)愈發(fā)緊張。這些汽車網(wǎng)絡(luò)安全攻擊事件,輕則給企業(yè)產(chǎn)品發(fā)布及產(chǎn)品口碑造成影

    2024年02月12日
    瀏覽(38)
  • 氫氣傳感器報(bào)警值:守護(hù)實(shí)驗(yàn)室安全的隱形衛(wèi)士

    氫氣傳感器報(bào)警值:守護(hù)實(shí)驗(yàn)室安全的隱形衛(wèi)士

    ????????????????隨著科技的發(fā)展,我們的生活變得越來越便捷,但是與此同時(shí),安全問題也日益凸顯。其中,氫氣作為一種清潔能源,被廣泛應(yīng)用于各個(gè)領(lǐng)域,但是如果不加以控制,氫氣泄漏也可能帶來嚴(yán)重的安全隱患。因此,了解氫氣傳感器的報(bào)警值,確保實(shí)驗(yàn)室

    2024年04月28日
    瀏覽(20)
  • django實(shí)驗(yàn)室安全教育管理系統(tǒng)(源碼+mysql+論文)

    django實(shí)驗(yàn)室安全教育管理系統(tǒng)(源碼+mysql+論文)

    本系統(tǒng)(程序 + 源碼)帶文檔 lw 萬字以上 ? 文末可獲取本課題的源碼和程序 選題背景: 隨著科學(xué)技術(shù)的不斷發(fā)展,實(shí)驗(yàn)室在高校、研究所等科研教育機(jī)構(gòu)中扮演著越來越重要的角色。實(shí)驗(yàn)室安全事關(guān)科研人員的生命安全和科研成果的保護(hù),因此,加強(qiáng)實(shí)驗(yàn)室安全管理,提高

    2024年04月27日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包