W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
我們知道數(shù)據(jù)庫的配置中有支持對默認數(shù)據(jù)庫的配置,因此?DB
?對象及?Model
?對象在初始化的時候已經(jīng)綁定到了特定的數(shù)據(jù)庫上。運行時切換數(shù)據(jù)庫有幾種方案(假如我們的數(shù)據(jù)庫有?user
?用戶數(shù)據(jù)庫和?order
?訂單數(shù)據(jù)庫):
g.DB("分組名稱")
?來獲取特定數(shù)據(jù)庫的單例對象。
DB.SetSchema
?方法切換單例對象的數(shù)據(jù)庫,需要注意的是由于修改的是單例對象的數(shù)據(jù)庫配置,因此影響是全局的: g.DB().SetSchema("user-schema")
g.DB().SetSchema("order-schema")
Schema
?方法創(chuàng)建?Schema
?數(shù)據(jù)庫對象,并通過該數(shù)據(jù)庫對象創(chuàng)建模型對象并執(zhí)行后續(xù)鏈式操作: db.Schema("user-schema").Model("user").All()
db.Schema("order-schema").Model("order").All()
也可以通過鏈式操作?Model.Schema
?方法設置當前鏈式操作對應的數(shù)據(jù)庫,沒有設置的情況下使用的是其?DB
?或者?TX
?默認連接的數(shù)據(jù)庫:
db.Model("user").Schema("user-schema").All()
db.Model("order").Schema("order-schema").All()
注意兩種使用方式的差別,前一種方式來自于?Schema
?對象創(chuàng)建?Model
?對象后執(zhí)行操作;后一種方式是通過修改當前?Model
?對象操作的數(shù)據(jù)庫名稱達到切換數(shù)據(jù)庫的目的。
// SELECT * FROM `order`.`order` o LEFT JOIN `user`.`user` u ON (o.uid=u.id) WHERE u.id=1 LIMIT 1
db.Model("order.order o").LeftJoin("user.user u", "o.uid=u.id").Where("u.id", 1).One()
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: