第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

beego 中使用關(guān)聯(lián)查詢( join 查詢)

標(biāo)簽:
MySQL Go

beego 中使用关联查询( join 查询)

  1. 文档所在网址:这里

//使用实例:article:=new(Article)
num,err:= o.QueryTable("go_article").RelatedSel().All(&article)
  1. 但直接使用 RelatedSel() 是不行,还必须先在 model中定义:

type User struct {    Id int    Name string    Age int
}type Article stuct {    Id int    Title string    Content string    User *User `orm:"rel(fk)"` //这样写,默认在Article中应该有一个user_id的字段,如果没有,通过beego自动建表的话,它会生成;如果是手动建表,记得把user_id 这个字段加上去
}

定义表字段为"rel(fk)",即外键,要定义其它类型的,请看文档。

  1. 命令行自动建表:

orm.RunCommand()  //main函数或init函数中需要加这行代码,否则不能自动建表
go build main.go #先在命令行中执行这句,会生成main.exe文件./main orm syncdb -h #-h会提示可用的参数./main orm syncdb -v #建表的同时会显示建表的sql语句

如果使用自动建表,建议不要像上边一样直接写int,string,具体字段字段的方法,见 文档

其实我使用命令行建表最主要的目的是想知道 Article 中的 User 会生成什么字段名,结果就是 user_id,且与你 User 对应表名的前缀没有关系

  1. 疑问:

4.1 RelatedSel()可以选择“字段名” RelatedSel("user") 其实只是选择“表名”(实际也不是表名,而是 struct 中对应字段的小写),只有当一个 model 中使用了多个 rel 字段的时候才有意义。但怎么选择关联的 user 表中的指定字段?

4.2  RelatedSel()默认应该是 inner join,但我希望是 left join ,应该怎么写?

4.3 我想看到每次执行数据库操作时使用的 sql 语句,怎么查看?

  1. 一点感慨:

个人觉得 beego 自带的 orm 其实挺不好用的,有些概念也很不理解。
作为一个经常写 ThinkPHP 3.2 的码农,使用其它框架的 orm 的时候真的觉得太麻烦。
但话说 orm 到底有什么优势?其实我是一直不理解的,tp3.2 操作数据库的方法真正好用的不是它的 orm,而是它的连贯操作写起来真的很舒服。

其实 beego 的作者也做过一个独立的 orm 用法和 tp3.2 也还是有点像的。

但 github 中能搜到了 star 最多的 go orm 应该是 gorm ,看文档,发现它的用法其实与 tp3.2 的挺像的,我还是比较推荐使用 gorm 的。

原文链接:https://segmentfault.com/a/1190000015775872

原文作者:agui1989

點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消